[RFA-v2] Use i386_use_watchpoints for go32v2, bds and windows native

Pierre Muller
2009-02-13T08:42:34Z

[-- Attachment #1: Type: text/plain, Size: 1156 bytes --]

I resubmitting an updated patch that
takes into account the remark from Mark,
that only FreeBSD supports hardware watchpoints.
Eli already gave his approval for the go32 part,
but I also need approval for bsd and for windows.

This patch is required, in order
for the hardware watchpoint patch for windows gdbserver,
to be useful for windows native gdb debugger connected to a windows native
gdbserver.

http://sourceware.org/ml/gdb-patches/2009-02/msg00206.html

But I didn't get any feedback on that RFC yet :(

By the way, who is responsible for windows gdbserver?

Mark and Chris, is this patch OK?

Pierre Muller
Pascal language support maintainer for GDB

gdb/ChangeLog entry:

2009-02-13 Pierre Muller <muller@ics.u-strasbg.fr>

* Extend use of i386_use_watchpoints to all i386 native files
using hardware watchpoints.
go32-nat.c (init_go32_ops): Call i386_use_watchpoints.
i386fbsd-nat.c (_initialize_i386fbsd_nat): Ditto.
windows-nat.c (init_windows_ops): Ditto.
config/i386/nm-cygwin.h: Define I386_WATCHPOINTS_IN_TARGET_VECTOR.
config/i386/nm-cygwin64.h: Ditto.
config/i386/nm-fbsd.h: Ditto.
config/i386/nm-go32.h: Ditto.

[-- Attachment #2: i386_use_watchpoints.patch --]
[-- Type: application/octet-stream, Size: 3887 bytes --]

Index: gdb/go32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/go32-nat.c,v
retrieving revision 1.63
diff -u -p -r1.63 go32-nat.c
--- gdb/go32-nat.c 6 Feb 2009 22:21:26 -0000 1.63
+++ gdb/go32-nat.c 8 Feb 2009 22:27:44 -0000
@@ -910,6 +910,9 @@ init_go32_ops (void)
go32_ops.to_has_stack = 1;
go32_ops.to_has_registers = 1;
go32_ops.to_has_execution = 1;
+
+ i386_use_watchpoints (&go32_ops);
+
go32_ops.to_magic = OPS_MAGIC;

/* Initialize child's cwd as empty to be initialized when starting
Index: gdb/i386fbsd-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386fbsd-nat.c,v retrieving revision 1.16 diff -u -p -r1.16 i386fbsd-nat.c
--- gdb/i386fbsd-nat.c 3 Jan 2009 05:57:52 -0000 1.16
+++ gdb/i386fbsd-nat.c 9 Feb 2009 12:32:57 -0000
@@ -125,6 +125,7 @@ _initialize_i386fbsd_nat (void)

/* Add some extra features to the common *BSD/i386 target. */
t = i386bsd_target ();
+ i386_use_watchpoints (t);
t->to_resume = i386fbsd_resume;
t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
t->to_find_memory_regions = fbsd_find_memory_regions;
Index: gdb/windows-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/windows-nat.c,v
retrieving revision 1.179
diff -u -p -r1.179 windows-nat.c
--- gdb/windows-nat.c 6 Feb 2009 22:21:26 -0000 1.179
+++ gdb/windows-nat.c 8 Feb 2009 22:27:46 -0000
@@ -2135,6 +2135,8 @@ init_windows_ops (void)
windows_ops.to_has_registers = 1;
windows_ops.to_has_execution = 1;
windows_ops.to_pid_to_exec_file = windows_pid_to_exec_file;
+ i386_use_watchpoints (&windows_ops);
+
windows_ops.to_magic = OPS_MAGIC;
}

Index: gdb/config/i386/nm-cygwin.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-cygwin.h,v
retrieving revision 1.8
diff -u -p -r1.8 nm-cygwin.h
--- gdb/config/i386/nm-cygwin.h 3 Jan 2009 05:57:54 -0000 1.8
+++ gdb/config/i386/nm-cygwin.h 8 Feb 2009 22:27:46 -0000
@@ -20,6 +20,7 @@
void dll_symbol_command (char *, int);

#define I386_USE_GENERIC_WATCHPOINTS
+#define I386_WATCHPOINTS_IN_TARGET_VECTOR

#include "i386/nm-i386.h"

Index: gdb/config/i386/nm-cygwin64.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-cygwin64.h,v
retrieving revision 1.1
diff -u -p -r1.1 nm-cygwin64.h
--- gdb/config/i386/nm-cygwin64.h 11 Jan 2009 13:15:56 -0000 1.1
+++ gdb/config/i386/nm-cygwin64.h 8 Feb 2009 22:27:46 -0000
@@ -19,6 +19,7 @@
void dll_symbol_command (char *, int);

#define I386_USE_GENERIC_WATCHPOINTS
+#define I386_WATCHPOINTS_IN_TARGET_VECTOR

#include "i386/nm-i386.h"

Index: gdb/config/i386/nm-fbsd.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-fbsd.h,v
retrieving revision 1.18
diff -u -p -r1.18 nm-fbsd.h
--- gdb/config/i386/nm-fbsd.h 3 Jan 2009 05:57:54 -0000 1.18
+++ gdb/config/i386/nm-fbsd.h 8 Feb 2009 22:27:46 -0000
@@ -23,6 +23,7 @@

#ifdef HAVE_PT_GETDBREGS
#define I386_USE_GENERIC_WATCHPOINTS
+#define I386_WATCHPOINTS_IN_TARGET_VECTOR
#endif

#include "i386/nm-i386.h"
Index: gdb/config/i386/nm-go32.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nm-go32.h,v
retrieving revision 1.8
diff -u -p -r1.8 nm-go32.h
--- gdb/config/i386/nm-go32.h 3 Jan 2009 05:57:54 -0000 1.8
+++ gdb/config/i386/nm-go32.h 8 Feb 2009 22:27:46 -0000
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */

#define I386_USE_GENERIC_WATCHPOINTS
+#define I386_WATCHPOINTS_IN_TARGET_VECTOR

#include "i386/nm-i386.h"