This is a slight modification of the patch I posted last April. It is close to the minimal amount of code needed to verify that the Linux kernel patch (still under development) is working, and will need more work before it would be considered for committing. The main change from the previous version is that mips_linux_stopped_data_address() now always returns false as we cannot accurately determine the location. Why post it again you ask? To have something to point people at. Any comments or criticisms (about the patch) are welcome. Note that I am still aware of Daniel's earlier suggestions, and hope to act on them soon. 2008-08-27 David Daney * config/mips/linux.mh (NAT_FILE): Change to nm-linux.h. * config/mips/nm-linux.h: New file. * infrun.c (handle_inferior_event): Use software single step when target requires it. * mips-linux-nat.c: Include command.h and gdbcmd.h. (maint_show_dr): New variable. (PTRACE_GET_WATCH_REGS): New macro. (PTRACE_SET_WATCH_REGS): Same. (enum pt_watch_style): Define. (struct mips32_watch_regs): Define. (struct pt_watch_regs): Define. (MAX_DEBUG_REGISTER): New macro. (watch_mirror): New variable. (mips_show_dr, mips_linux_can_use_hardware_watchpoint, mips_linux_stopped_data_address, mips_linux_stopped_by_watchpoint, mips_linux_region_ok_for_watchpoint, watchlo_val, write_watchpoint_regs, mips_linux_insert_watchpoint, mips_linux_remove_watchpoint): New functions. (_initialize_mips_linux_nat): Register show-debug-regs maintenance command.