Here is a patch to make hardware watchpoints work in precord. Biggest change is in breakpoint.c, but it's mainly mechanical. I abstracted most of the function "watchpoint_check" into a separate function so it could be called from two places. Then in record_wait, if not replay mode we call target_stopped_by_watchpoint to see if a watchpoint was triggered. In replay mode we call the new function hw_watchpoint_check.