add HAVE_CONTINUABLE_WATCHPOINT to target_ops
authorKris Warkentin <kewarken@qnx.com>
Mon, 24 Feb 2003 21:56:51 +0000 (21:56 +0000)
committerKris Warkentin <kewarken@qnx.com>
Mon, 24 Feb 2003 21:56:51 +0000 (21:56 +0000)
gdb/ChangeLog
gdb/config/i386/nm-i386.h
gdb/config/i386/nm-i386sco5.h
gdb/config/i386/nm-i386sol2.h
gdb/config/s390/nm-linux.h
gdb/config/sparc/nm-sun4sol2.h
gdb/infrun.c
gdb/target.c
gdb/target.h

index 3036caf9e5815638e61711ad03da8cde4917e817..52d64d7026fa12b4817f5af2a0391f174d0fb611 100644 (file)
@@ -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
index eed05a476fa3bb1effa2fc9a98ab43c5db1a6665..97a70539b0f37a9f84f0a3f94555b18558c337fc 100644 (file)
@@ -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)
 
index 37a4b16d44b898c4c07e6441453e98a20bcf7c7e..65f317621e6aec1ecd6fd3d2f1491120f5cf82c3 100644 (file)
@@ -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)  \
index 8a51942791fbc61eb484cfdb981f100ea824055d..aeb89a26f6fb9d9215f4257a8652e39ea176e50c 100644 (file)
@@ -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
index 3846579923fa38f78fb2443351b28101dd84c16c..727a66ebeaf930f8246c73333719d0b43ff4959d 100644 (file)
@@ -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)
 
index 3cad417de2aa3f9d3a5466e4e0d4468bcf35d1d4..8ad58a145e0116dd6d5ca0613892cba6fba6b3f3 100644 (file)
@@ -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) \
index f8644420e14c49b4262f6ff78ec5e06647a5a7f1..f65af358a02d5f64c5dbd7d48f6d732f1e249da9 100644 (file)
@@ -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
index 683561f3a9082de35ffed696dec90d40f931b29b..4de246cc174b67c8a31b5078431d89442f0e0d1d 100644 (file)
@@ -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);
index 80e65381db12f69e17f17a70462f8dcf6d95cb81..f081bd36c128ae46abb6e7188256a5755c1d59f8 100644 (file)
@@ -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.  */