This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch] add HAVE_CONTINUABLE_WATCHPOINT to target ops


This allows you to take one more thing out of the nm files and also lets
targets that use watchpoints define it in their tdep file.

cheers,

Kris

ChangeLog:

2003-02-24  Kris Warkentin  <kewarken at qnx dot 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.


Index: config/i386/nm-i386.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-i386.h,v
retrieving revision 1.3
diff -u -r1.3 nm-i386.h
--- config/i386/nm-i386.h 4 Jul 2002 12:32:29 -0000 1.3
+++ config/i386/nm-i386.h 12 Feb 2003 19:38:15 -0000
@@ -93,7 +93,7 @@
    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: config/i386/nm-i386sco5.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-i386sco5.h,v
retrieving revision 1.3
diff -u -r1.3 nm-i386sco5.h
--- config/i386/nm-i386sco5.h 18 Aug 2002 22:23:32 -0000 1.3
+++ config/i386/nm-i386sco5.h 12 Feb 2003 19:38:15 -0000
@@ -63,7 +63,7 @@
 /* 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: config/i386/nm-i386sol2.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-i386sol2.h,v
retrieving revision 1.7
diff -u -r1.7 nm-i386sol2.h
--- config/i386/nm-i386sol2.h 5 Jun 2002 19:18:19 -0000 1.7
+++ config/i386/nm-i386sol2.h 12 Feb 2003 19:38:15 -0000
@@ -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: config/s390/nm-linux.h
===================================================================
RCS file: /cvs/src/src/gdb/config/s390/nm-linux.h,v
retrieving revision 1.5
diff -u -r1.5 nm-linux.h
--- config/s390/nm-linux.h 24 Feb 2002 22:56:06 -0000 1.5
+++ config/s390/nm-linux.h 12 Feb 2003 19:38:15 -0000
@@ -51,7 +51,7 @@
 /* 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: config/sparc/nm-sun4sol2.h
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/nm-sun4sol2.h,v
retrieving revision 1.9
diff -u -r1.9 nm-sun4sol2.h
--- config/sparc/nm-sun4sol2.h 14 Nov 2002 00:25:05 -0000 1.9
+++ config/sparc/nm-sun4sol2.h 12 Feb 2003 19:38:15 -0000
@@ -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: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.96
diff -u -r1.96 infrun.c
--- infrun.c 31 Jan 2003 15:22:57 -0000 1.96
+++ infrun.c 12 Feb 2003 19:38:16 -0000
@@ -226,13 +226,6 @@
 #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: target.c
===================================================================
RCS file: /cvs/src/src/gdb/target.c,v
retrieving revision 1.49
diff -u -r1.49 target.c
--- target.c 19 Jan 2003 04:06:46 -0000 1.49
+++ target.c 12 Feb 2003 19:38:17 -0000
@@ -573,6 +573,7 @@
       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: target.h
===================================================================
RCS file: /cvs/src/src/gdb/target.h,v
retrieving revision 1.35
diff -u -r1.35 target.h
--- target.h 19 Jan 2003 04:06:46 -0000 1.35
+++ target.h 12 Feb 2003 19:38:17 -0000
@@ -256,6 +256,7 @@
     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);
@@ -961,6 +962,13 @@
 #ifndef STOPPED_BY_WATCHPOINT
 #define STOPPED_BY_WATCHPOINT(w) \
    (*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

Attachment: contin-cl.txt
Description: Text document

Attachment: contin-patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]