aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKris Warkentin <kewarken@qnx.com>2003-02-24 21:56:51 +0000
committerKris Warkentin <kewarken@qnx.com>2003-02-24 21:56:51 +0000
commit7df1a32481bceebdcca416187a97c20c12c4a676 (patch)
tree1d9ce8d894b26fd3f89d9cfe2c989cbb8ddfcc0d
parentf46169db7af74c579697433a58ab325ff1e78381 (diff)
downloadgdb-7df1a32481bceebdcca416187a97c20c12c4a676.zip
gdb-7df1a32481bceebdcca416187a97c20c12c4a676.tar.gz
gdb-7df1a32481bceebdcca416187a97c20c12c4a676.tar.bz2
add HAVE_CONTINUABLE_WATCHPOINT to target_ops
-rw-r--r--gdb/ChangeLog11
-rw-r--r--gdb/config/i386/nm-i386.h2
-rw-r--r--gdb/config/i386/nm-i386sco5.h2
-rw-r--r--gdb/config/i386/nm-i386sol2.h2
-rw-r--r--gdb/config/s390/nm-linux.h2
-rw-r--r--gdb/config/sparc/nm-sun4sol2.h2
-rw-r--r--gdb/infrun.c7
-rw-r--r--gdb/target.c1
-rw-r--r--gdb/target.h8
9 files changed, 25 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3036caf..52d64d7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2003-02-24 Kris Warkentin <kewarken@qnx.com>
+
+ * target.h: (HAVE_CONTINUABLE_WATCHPOINT): Define.
+ (target_ops): Add to_have_continuable_watchpoint.
+ * target.c (update_current_target): Add INHERIT line for
+ to_have_continuable_watchpoint.
+ * infrun.c: Remove HAVE_CONTINUABLE_WATCHPOINT defines.
+ * config/i386/nm-i386.h, config/i386/nm-i386sco5.h,
+ config/i386/nm-i386sol2.h, config/s390/nm-linux.h,
+ config/sparc/nm-sun4sol2.h: HAVE_CONTINUABLE_WATCHPOINT defined as 1.
+
2003-02-24 Elena Zannoni <ezannoni@redhat.com>
* MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop
diff --git a/gdb/config/i386/nm-i386.h b/gdb/config/i386/nm-i386.h
index eed05a4..97a7053 100644
--- a/gdb/config/i386/nm-i386.h
+++ b/gdb/config/i386/nm-i386.h
@@ -93,7 +93,7 @@ extern int i386_remove_hw_breakpoint (CORE_ADDR addr, void *shadow);
one that caused the trap. Therefore we don't need to step over it.
But we do need to reset the status register to avoid another trap. */
-#define HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT 1
#define STOPPED_BY_WATCHPOINT(W) (i386_stopped_data_address () != 0)
diff --git a/gdb/config/i386/nm-i386sco5.h b/gdb/config/i386/nm-i386sco5.h
index 37a4b16..65f3176 100644
--- a/gdb/config/i386/nm-i386sco5.h
+++ b/gdb/config/i386/nm-i386sco5.h
@@ -63,7 +63,7 @@ extern int kernel_u_size (void);
/* After a watchpoint trap, the PC points to the instruction which
caused the trap. But we can continue over it without disabling the
trap. */
-#define HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT 1
#define HAVE_STEPPABLE_WATCHPOINT
#define STOPPED_BY_WATCHPOINT(W) \
diff --git a/gdb/config/i386/nm-i386sol2.h b/gdb/config/i386/nm-i386sol2.h
index 8a51942..aeb89a2 100644
--- a/gdb/config/i386/nm-i386sol2.h
+++ b/gdb/config/i386/nm-i386sol2.h
@@ -32,7 +32,7 @@
/* When a hardware watchpoint fires off the PC will be left at the
instruction following the one which caused the watchpoint.
It will *NOT* be necessary for GDB to step over the watchpoint. */
-#define HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT 1
/* Solaris x86 2.6 and 2.7 targets have a kernel bug when stepping
over an instruction that causes a page fault without triggering
diff --git a/gdb/config/s390/nm-linux.h b/gdb/config/s390/nm-linux.h
index 3846579..727a66eb 100644
--- a/gdb/config/s390/nm-linux.h
+++ b/gdb/config/s390/nm-linux.h
@@ -51,7 +51,7 @@ extern int kernel_u_size (void);
/* WATCHPOINT SPECIFIC STUFF */
#define TARGET_HAS_HARDWARE_WATCHPOINTS
-#define HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT 1
#define target_insert_watchpoint(addr, len, type) \
s390_insert_watchpoint (PIDGET (inferior_ptid), addr, len, type)
diff --git a/gdb/config/sparc/nm-sun4sol2.h b/gdb/config/sparc/nm-sun4sol2.h
index 3cad417..8ad58a1 100644
--- a/gdb/config/sparc/nm-sun4sol2.h
+++ b/gdb/config/sparc/nm-sun4sol2.h
@@ -51,7 +51,7 @@
/* When a hardware watchpoint fires off the PC will be left at the
instruction following the one which caused the watchpoint.
It will *NOT* be necessary for GDB to step over the watchpoint. */
-#define HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT 1
extern int procfs_stopped_by_watchpoint (ptid_t);
#define STOPPED_BY_WATCHPOINT(W) \
diff --git a/gdb/infrun.c b/gdb/infrun.c
index f864442..f65af35 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -226,13 +226,6 @@ a command like `return' or `jump' to continue execution.");
#define HAVE_STEPPABLE_WATCHPOINT 1
#endif
-#ifndef HAVE_CONTINUABLE_WATCHPOINT
-#define HAVE_CONTINUABLE_WATCHPOINT 0
-#else
-#undef HAVE_CONTINUABLE_WATCHPOINT
-#define HAVE_CONTINUABLE_WATCHPOINT 1
-#endif
-
#ifndef CANNOT_STEP_HW_WATCHPOINTS
#define CANNOT_STEP_HW_WATCHPOINTS 0
#else
diff --git a/gdb/target.c b/gdb/target.c
index 683561f..4de246c 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -573,6 +573,7 @@ update_current_target (void)
INHERIT (to_remove_watchpoint, t);
INHERIT (to_stopped_data_address, t);
INHERIT (to_stopped_by_watchpoint, t);
+ INHERIT (to_have_continuable_watchpoint, t);
INHERIT (to_region_size_ok_for_hw_watchpoint, t);
INHERIT (to_terminal_init, t);
INHERIT (to_terminal_inferior, t);
diff --git a/gdb/target.h b/gdb/target.h
index 80e6538..f081bd3 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -256,6 +256,7 @@ struct target_ops
int (*to_remove_watchpoint) (CORE_ADDR, int, int);
int (*to_insert_watchpoint) (CORE_ADDR, int, int);
int (*to_stopped_by_watchpoint) (void);
+ int to_have_continuable_watchpoint;
CORE_ADDR (*to_stopped_data_address) (void);
int (*to_region_size_ok_for_hw_watchpoint) (int);
void (*to_terminal_init) (void);
@@ -963,6 +964,13 @@ extern void (*target_new_objfile_hook) (struct objfile *);
(*current_target.to_stopped_by_watchpoint) ()
#endif
+/* Non-zero if we have continuable watchpoints */
+
+#ifndef HAVE_CONTINUABLE_WATCHPOINT
+#define HAVE_CONTINUABLE_WATCHPOINT \
+ (current_target.to_have_continuable_watchpoint)
+#endif
+
/* HP-UX supplies these operations, which respectively disable and enable
the memory page-protections that are used to implement hardware watchpoints
on that platform. See wait_for_inferior's use of these. */