From 9093389c0fbe371727b8725a3036c113bed015f0 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sun, 22 Nov 2009 15:38:59 +0000 Subject: Make hardware watchpoints work for process record. * breakpoint.c (hardware_watchpoint_inserted_in_range): New. * breakpoint.h (hardware_watchpoint_inserted_in_range): Declare. * record.c (record_beneath_to_stopped_by_watchpoint) (record_beneath_to_stopped_data_address, record_hw_watchpoint): New globals. (record_exec_insn): Check for watchpoint hits. (tmp_to_stopped_by_watchpoint, tmp_to_stopped_data_address): New globals. (record_open): Set tmp_to_stopped_by_watchpoint, tmp_to_stopped_data_address, record_beneath_to_stopped_by_watchpoint and record_beneath_to_stopped_data_address. (record_wait): Report watchpoint hits to the core. Update and extend comments. (record_stopped_by_watchpoint): New. (record_stopped_data_address): New. (init_record_ops): Install them. (init_record_core_ops): Ditto. --- gdb/breakpoint.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gdb/breakpoint.h') diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 6587407..5ebd36c 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -736,6 +736,12 @@ extern int regular_breakpoint_inserted_here_p (struct address_space *, CORE_ADDR extern int software_breakpoint_inserted_here_p (struct address_space *, CORE_ADDR); +/* Returns true if there's a hardware watchpoint or access watchpoint + inserted in the range defined by ADDR and LEN. */ +extern int hardware_watchpoint_inserted_in_range (struct address_space *, + CORE_ADDR addr, + ULONGEST len); + extern int breakpoint_thread_match (struct address_space *, CORE_ADDR, ptid_t); extern void until_break_command (char *, int, int); -- cgit v1.1