[PATCH 0/3] mips hardware watchpoint support in gdbserver

Yao Qi
2013-05-30T02:44:01Z

Hi,
This patch series is to post Jie and Dan's work to support mips hardware
watchpoint in gdbserver. The patch exists in the codesourcery tree for a
while, when I rebase the patch for on top of FSF GDB trunk, I find
that kernel header structs are defined in gdb while they are not defined
in gdbserver because it includes asm/ptrace.h. After some thought, it
should be safe to include asm/ptrace.h in gdb to get rid of these local
structs, so this is what patch 1/3 does. It is a cleanup one. See more
explanations in the patch itself.

Then, I find there are some duplications between gdb and gdbserver on
manipulating h/w watchpoints, so I merge the common part to
common/mips-linux-watch.[h,c]. gdb and gdbserver supports h/w watchpoints
for some targets, such as i386 and arm, but no one shares common code in
common/ directory before. Ulrich Weigand expressed the intention for
sharing for arm h/w watchpoint support in gdbserver
<http://sourceware.org/ml/gdb-patches/2011-09/msg00200.html>
I am not sure upstream maintainers' opinion on this. That is what
patch 2/3 does.

Finally, patch 3/3 is about the rest of gdbserver stuff for h/w watchpoint.

The patch series are tested on some mips boards with gdbserver, with a
hack that force proc skip_hw_watchpoint_tests return false.
Many fails are fixed and no regressions (note that there is a regression
in gdb.base/watchpoint.exp, but it is caused by a previous internal
error). I also mange to run testsuite native mips gdb on a mips board,
watchpoint related tests seem OK. The whole testsuite is not run because
of the very slow speed. Is It OK?

*** BLURB HERE ***

Yao Qi (3):
Include asm/ptrace.h in mips-linux-nat.c
Move mips hardware watchpoint stuff to common/
MIPS GDBserver watchpoint

gdb/Makefile.in | 6 +-
gdb/common/mips-linux-watch.c | 358 +++++++++++++++++++++++++++++++++
gdb/common/mips-linux-watch.h | 76 +++++++
gdb/config/mips/linux.mh | 2 +-
gdb/gdbserver/Makefile.in | 5 +-
gdb/gdbserver/configure.srv | 2 +-
gdb/gdbserver/linux-mips-low.c | 330 ++++++++++++++++++++++++++++++
gdb/mips-linux-nat.c | 431 +++------------------------------------
8 files changed, 809 insertions(+), 401 deletions(-)
create mode 100644 gdb/common/mips-linux-watch.c
create mode 100644 gdb/common/mips-linux-watch.h

--
1.7.7.6