This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Modifications on gdbserver
- From: Daniel Jacobowitz <drow at false dot org>
- To: Sérgio Durigan Júnior <sergiodj at linux dot vnet dot ibm dot com>
- Cc: gdb at sourceware dot org
- Date: Tue, 29 Sep 2009 15:47:56 -0400
- Subject: Re: Modifications on gdbserver
- References: <200909291640.14995.sergiodj@linux.vnet.ibm.com>
On Tue, Sep 29, 2009 at 04:40:14PM -0300, Sérgio Durigan Júnior wrote:
> 1) I could extend the remote protocol and include one more type of `Z' packet
> (`Z5', for example) which would represent this type of hardware breakpoint.
>
> 2) I could extend the existing `Z1' (hardware breakpoint) packet in order to
> include a "length" (or "range") parameter. This will be different from the
> existing "size" parameter, because "size" is currently used the size of the
> instruction on the architecture.
>
> What do you think? Considering that there will be more "special" types of
> hardware breakpoints/watchpoints, probably I should choose (2) and try to
> modify the remote protocol as few as possible. Do you agree? Also, do you
> see other option(s) that could be better for this case?
The vital thing to remember when modifying the remote protocol is to
be compatible. We shouldn't send packets to existing servers that
won't understand them. So I think (1) is better, because then we can
probe for the existance of the new packet and refuse to set
watchpoints if the target can't implement them. If you change an
existing packet, it's impossible to guess all the ways existing
servers will parse it incorrectly :-)
New packets are a hassle to add, enable, probe, and document, but it's
mechanical and safe.
--
Daniel Jacobowitz
CodeSourcery