]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* config/sparc/nm-sol2.h [NEW_PROC_API]
authorMark Kettenis <kettenis@gnu.org>
Mon, 29 Dec 2003 13:07:26 +0000 (13:07 +0000)
committerMark Kettenis <kettenis@gnu.org>
Mon, 29 Dec 2003 13:07:26 +0000 (13:07 +0000)
(TARGET_HAS_HARDWARE_WAITCHPOINTS): Define.
(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define to 1.
(TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to 1.
(HAVE_CONTINUABLE_WATCHPOINT): Define to 1.
(procfs_stopped_by_watchpoint): New prototype.
(STOPPED_BY_WATCHPOINT): New define.
(procfs_set_watchpoint): New prototype.
(target_insert_watchpoint, target_remove_watchpoint): Define using
procfs_set_watchpoint.

gdb/ChangeLog
gdb/config/sparc/nm-sol2.h

index ae47be3e816cfc308045856cceb0d7a7bd09eba6..82857605b80df9d968b2cfa3107c3ce77c0684ce 100644 (file)
@@ -1,3 +1,16 @@
+2003-12-29  Mark Kettenis  <kettenis@gnu.org>
+
+       * config/sparc/nm-sol2.h [NEW_PROC_API]
+       (TARGET_HAS_HARDWARE_WAITCHPOINTS): Define.
+       (TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define to 1.
+       (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to 1.
+       (HAVE_CONTINUABLE_WATCHPOINT): Define to 1.
+       (procfs_stopped_by_watchpoint): New prototype.
+       (STOPPED_BY_WATCHPOINT): New define.
+       (procfs_set_watchpoint): New prototype.
+       (target_insert_watchpoint, target_remove_watchpoint): Define using
+       procfs_set_watchpoint.
+
 2003-12-28  Mark Kettenis  <kettenis@gnu.org>
 
        * sparcnbsd-tdep.c: Include "frame.h", "frame-unwind.h",
index 2cca1afed06e2875760a2bc109055d797ad30178..ad6d88dc9fe527f84ddd753702b634d9fcd2f867 100644 (file)
 
 #include "solib.h"
 
+/* Hardware wactchpoints.  */
+
+/* Solaris 2.6 and above can do HW watchpoints.  */
+#ifdef NEW_PROC_API
+
+#define TARGET_HAS_HARDWARE_WATCHPOINTS
+
+/* The man page for proc(4) on Solaris 2.6 and up says that the system
+   can support "thousands" of hardware watchpoints, but gives no
+   method for finding out how many.  So just tell GDB 'yes'.  */
+#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(TYPE, CNT, OT) 1
+#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(SIZE) 1
+
+/* 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 1
+
+extern int procfs_stopped_by_watchpoint (ptid_t);
+#define STOPPED_BY_WATCHPOINT(W) \
+  procfs_stopped_by_watchpoint(inferior_ptid)
+
+/* Use these macros for watchpoint insertion/deletion.  TYPE can be 0
+   (write watch), 1 (read watch), 2 (access watch (read/write).  */
+
+extern int procfs_set_watchpoint (ptid_t, CORE_ADDR, int, int, int);
+#define target_insert_watchpoint(ADDR, LEN, TYPE) \
+        procfs_set_watchpoint (inferior_ptid, ADDR, LEN, TYPE, 1)
+#define target_remove_watchpoint(ADDR, LEN, TYPE) \
+        procfs_set_watchpoint (inferior_ptid, ADDR, 0, 0, 0)
+
+#endif /* NEW_PROC_API */
+
 #endif /* nm-sol2.h */