[PATCH 4/4 v2] Directly call i386-dregs functions

Gary Benson gbenson@redhat.com
Wed Jun 18 15:23:00 GMT 2014


Three target_ops functions in i386-nat.c call other local target_ops
functions.  This commit changes those functions to call the functions
in i386-dregs.c directly.

gdb/
2014-06-18  Gary Benson  <gbenson@redhat.com>

	* i386-nat.c (i386_stopped_by_watchpoint):
	Use i386_dr_stopped_by_watchpoint.
	(i386_insert_hw_breakpoint): Use i386_dr_insert_watchpoint.
	(i386_remove_hw_breakpoint): Use i386_dr_remove_watchpoint.
---
 gdb/ChangeLog  |    7 +++++++
 gdb/i386-nat.c |   20 ++++++++++++++------
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
index 750b878..499fffb 100644
--- a/gdb/i386-nat.c
+++ b/gdb/i386-nat.c
@@ -208,8 +208,10 @@ i386_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
 static int
 i386_stopped_by_watchpoint (struct target_ops *ops)
 {
-  CORE_ADDR addr = 0;
-  return i386_stopped_data_address (ops, &addr);
+  struct i386_debug_reg_state *state
+    = i386_debug_reg_state (ptid_get_pid (inferior_ptid));
+
+  return i386_dr_stopped_by_watchpoint (state);
 }
 
 /* Insert a hardware-assisted breakpoint at BP_TGT->placed_address.
@@ -219,8 +221,11 @@ static int
 i386_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch,
 			   struct bp_target_info *bp_tgt)
 {
-  return i386_insert_watchpoint (self, bp_tgt->placed_address, 1,
-				 hw_execute, NULL) ? EBUSY : 0;
+  struct i386_debug_reg_state *state
+    = i386_debug_reg_state (ptid_get_pid (inferior_ptid));
+
+  return i386_dr_insert_watchpoint (state, hw_execute,
+				    bp_tgt->placed_address, 1) ? EBUSY : 0;
 }
 
 /* Remove a hardware-assisted breakpoint at BP_TGT->placed_address.
@@ -230,8 +235,11 @@ static int
 i386_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch,
 			   struct bp_target_info *bp_tgt)
 {
-  return i386_remove_watchpoint (self, bp_tgt->placed_address, 1,
-				 hw_execute, NULL);
+  struct i386_debug_reg_state *state
+    = i386_debug_reg_state (ptid_get_pid (inferior_ptid));
+
+  return i386_dr_remove_watchpoint (state, hw_execute,
+				    bp_tgt->placed_address, 1);
 }
 
 /* Returns the number of hardware watchpoints of type TYPE that we can
-- 
1.7.1



More information about the Gdb-patches mailing list