From 37814c187414a0bacf16a3d2a659240b728fa983 Mon Sep 17 00:00:00 2001 From: Kazuhiro Inaoka Date: Wed, 10 Mar 2004 00:18:44 +0000 Subject: [PATCH] 2004-03-10 Kei Sakamoto * remote-m32r-sdi.c: Support hardware watchpoint. --- gdb/ChangeLog | 4 ++++ gdb/remote-m32r-sdi.c | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 486d14e2cb6..d367d488c90 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2004-03-10 Kei Sakamoto + + * remote-m32r-sdi.c: Support hardware watchpoint. + 2004-03-09 Daniel Jacobowitz * user-regs.c: Update copyright years. diff --git a/gdb/remote-m32r-sdi.c b/gdb/remote-m32r-sdi.c index 7f0b90cf238..e2118587ea5 100644 --- a/gdb/remote-m32r-sdi.c +++ b/gdb/remote-m32r-sdi.c @@ -1434,13 +1434,14 @@ m32r_stop (void) } -/* Tell whether this target can support a hardware breakpoint. - This implements the TARGET_CAN_USE_HARDWARE_WATCHPOINT macro. */ +/* Tell whether this target can support a hardware breakpoint. CNT + is the number of hardware breakpoints already installed. This + implements the TARGET_CAN_USE_HARDWARE_WATCHPOINT macro. */ int -m32r_can_use_hardware_watchpoint (void) +m32r_can_use_hw_watchpoint (int type, int cnt, int othertype) { - return max_access_breaks; + return sdi_desc != NULL && cnt < max_access_breaks; } /* Set a data watchpoint. ADDR and LEN should be obvious. TYPE is 0 @@ -1448,12 +1449,12 @@ m32r_can_use_hardware_watchpoint (void) watchpoint. */ int -m32r_set_watchpoint (CORE_ADDR addr, int len, int type) +m32r_insert_watchpoint (CORE_ADDR addr, int len, int type) { int i; if (remote_debug) - fprintf_unfiltered (gdb_stdlog, "m32r_set_watchpoint(%08lx,%d,%d)\n", + fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%08lx,%d,%d)\n", addr, len, type); for (i = 0; i < MAX_ACCESS_BREAKS; i++) @@ -1618,6 +1619,11 @@ init_m32r_ops (void) m32r_ops.to_files_info = m32r_files_info; m32r_ops.to_insert_breakpoint = m32r_insert_breakpoint; m32r_ops.to_remove_breakpoint = m32r_remove_breakpoint; + m32r_ops.to_can_use_hw_breakpoint = m32r_can_use_hw_watchpoint; + m32r_ops.to_insert_watchpoint = m32r_insert_watchpoint; + m32r_ops.to_remove_watchpoint = m32r_remove_watchpoint; + m32r_ops.to_stopped_by_watchpoint = m32r_stopped_by_watchpoint; + m32r_ops.to_stopped_data_address = m32r_stopped_data_address; m32r_ops.to_kill = m32r_kill; m32r_ops.to_load = m32r_load; m32r_ops.to_create_inferior = m32r_create_inferior; -- 2.30.2