This is the mail archive of the
mailing list for the GDB project.
Re: Some questions w.r.t remote watchpoint support in i386
- From: Daniel Jacobowitz <drow at false dot org>
- To: Wu Zhou <woodzltc at cn dot ibm dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Tue, 25 Apr 2006 08:54:22 -0400
- Subject: Re: Some questions w.r.t remote watchpoint support in i386
- References: <Pine.LNX.4.64.0604251813170.10220@woodzltc>
On Tue, Apr 25, 2006 at 06:19:53PM +0800, Wu Zhou wrote:
> I am playing with remote debugging on i386 platform. At the very first, I
> start gdbserver and gdb on two different i386 machines. In this configuration,
> local gdb client can connect to remote gdb server. But after I set a
> breakpoint and issue "cont" command, remote debuggee get a SIGV error.
Mismatched libraries between the two is the likely cause. You can copy
the target libraries to the host and use set solib-absolute-prefix.
> 1. The first error I encounter is: "Couldn't write debug register: No such
> After some tracking, I found gdb client is calling target_insert_watchpoint
> defined in config/i386/nm-i386.h, instead of the remote_insert_watchpoint
> defined in remote.c
> I guess this is a more general problem. Whenever you change target under
> i386 platform, you will always get the i386_insert_watchpoint (and other
> three target operations) executed.
> Maybe we can put these target operation into the target_ops, instead of
> defining them as macro in config/i386/nm-i386.h?
Yes, someone needs to fix this.
> 2. Following the above thought, I comment out these four macros in
> config/i386/nm-i386.h, and add them into i386-linux-nat.c
> This time, local gdb will call remote_insert_watchpoint indeed, but I get
> another error:
> Can't clear hardware watchpoints without the 'Z2' (write-watchpoint) packet.
> "set debug remote 1" tell me that Packet Z2 (write-watchpoint) is NOT
> I tried to use "set remote write-watchpoint-packet 1", but it won't work
> Enabled packet Z2 (write-watchpoint) not recognized by stub
> my question here is:
> What is the stub refered to here? Is it the gdbserver? And how can
> gdbserver determine which packat he will support, which won't?
The stub is gdbserver, yes. It supports what it supports, and does not
support what no one has implemented! And no one has implemented i386
watchpoints for gdbserver.
> 3. I also have a question about the overall status of gdb's support for
> remote debugging on different platforms.
Mostly it depends on the stub.