I have updated my patch according to Pedro Alves and Thomas Schwinge's comments this week.
The main part of change is described in the mail-list, like
- add comment to describe the different between gdb and gdbserver
- adjust Makefile to re-use the exist files instead of using soft link
- generate the patch based on the current upstream master branch
- remove spurious blanks and revert back the '^L' (which I didn't know it has been used as the separate character for GNU Formating)
- use #ifdef GDBSERVER as less as I can.
Now, I am running the testcase for native and gdbserver.
This week I have begun to submit patch.
First, I have submit a patch create some new files. Pedro Alves suggest me to re-use the exist file for easy maintaining and reviewing with the #ifdef GDBSERVER macro. Then I changed the patch to satisfy that but I used soft link. Then he told me the soft link will be not available on all platform. Then I have studied some knowledge about autoconf to modify the confingure.ac the Makefile.in.
Now, I need do some more improving work. Such as, combination the memory-access interface to wrap gnu_xfer_memory, using a single target backend between gdb and gdbserver ,adding comment to describe the design divergences before the macro GDBSERVER and some other helper function to wrap the rest interface.
Here gdbserver go!
I have put the code to github, under the branch of gdbserver. The basic gdbserver on Hurd can set breakpoint, dump and modify memory variable and dump registers. Before submit patches to the mainline, I need do more things.
Move the MIG-gen file out, now I have copy exc_request_S.c msg_reply_S.c notify_S.c process_reply_S.c directlly from the gdb directory. I should change this to generate them by mig. I haven't totally understand [gdb]/gdb/config/i386/i386gnu.mh and the use of autoconf, I need a little more time.
Adjust the code style. I should change the code style to GNU-style. (not complete)