Linux x86 low-level debug register code synchronization
authorGary Benson <gbenson@redhat.com>
Tue, 24 Mar 2015 14:05:44 +0000 (14:05 +0000)
committerGary Benson <gbenson@redhat.com>
Tue, 24 Mar 2015 14:05:44 +0000 (14:05 +0000)
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.

gdb/ChangeLog
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-x86-low.c
gdb/x86-linux-nat.c

index 9ea144661c860630e08ba1930968c70512482532..f73b6e2260b7ca4693d4f43ab578a8eda80774f3 100644 (file)
@@ -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>
 
        * nat/x86-linux.h: New file.
index 12b46a9f380545b8a0f546de2e006dbfd20f0a87..10135aeb2b9d5e65f6a75f43d4be4f92c5f6ccfe 100644 (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>
 
        * linux-x86-low.c (x86_dr_low_set_addr): Rename to...
index cdd5b00bf8dfa74282f792786432e95d4fc6bee4..5fcc24df22aa594a62a2a2935497e8e328aa4e35 100644 (file)
@@ -544,12 +544,13 @@ x86_linux_dr_get (ptid_t ptid, int regnum)
   int tid;
   unsigned long value;
 
+  gdb_assert (ptid_lwp_p (ptid));
   tid = ptid_get_lwp (ptid);
 
   errno = 0;
   value = ptrace (PTRACE_PEEKUSER, tid, u_debugreg_offset (regnum), 0);
   if (errno != 0)
-    error ("Couldn't read debug register");
+    perror_with_name (_("Couldn't read debug register"));
 
   return value;
 }
@@ -559,12 +560,13 @@ x86_linux_dr_set (ptid_t ptid, int regnum, unsigned long value)
 {
   int tid;
 
+  gdb_assert (ptid_lwp_p (ptid));
   tid = ptid_get_lwp (ptid);
 
   errno = 0;
   ptrace (PTRACE_POKEUSER, tid, u_debugreg_offset (regnum), value);
   if (errno != 0)
-    error ("Couldn't write debug register");
+    perror_with_name (_("Couldn't write debug register"));
 }
 
 static int
index 10ccbd67968d4593e7021e5f7a5cabae50098184..c0cd3a6d191e6d82d1263092068cfab2b83cc111 100644 (file)
@@ -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 ()));
 
-  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);
 }
@@ -223,9 +223,9 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
 }
 
 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);
 }
 \f