From 7df1a32481bceebdcca416187a97c20c12c4a676 Mon Sep 17 00:00:00 2001 From: Kris Warkentin Date: Mon, 24 Feb 2003 21:56:51 +0000 Subject: [PATCH] add HAVE_CONTINUABLE_WATCHPOINT to target_ops --- gdb/ChangeLog | 11 +++++++++++ gdb/config/i386/nm-i386.h | 2 +- gdb/config/i386/nm-i386sco5.h | 2 +- gdb/config/i386/nm-i386sol2.h | 2 +- gdb/config/s390/nm-linux.h | 2 +- gdb/config/sparc/nm-sun4sol2.h | 2 +- gdb/infrun.c | 7 ------- gdb/target.c | 1 + gdb/target.h | 8 ++++++++ 9 files changed, 25 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3036caf..52d64d7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2003-02-24 Kris Warkentin + + * target.h: (HAVE_CONTINUABLE_WATCHPOINT): Define. + (target_ops): Add to_have_continuable_watchpoint. + * target.c (update_current_target): Add INHERIT line for + to_have_continuable_watchpoint. + * infrun.c: Remove HAVE_CONTINUABLE_WATCHPOINT defines. + * config/i386/nm-i386.h, config/i386/nm-i386sco5.h, + config/i386/nm-i386sol2.h, config/s390/nm-linux.h, + config/sparc/nm-sun4sol2.h: HAVE_CONTINUABLE_WATCHPOINT defined as 1. + 2003-02-24 Elena Zannoni * MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop diff --git a/gdb/config/i386/nm-i386.h b/gdb/config/i386/nm-i386.h index eed05a4..97a7053 100644 --- a/gdb/config/i386/nm-i386.h +++ b/gdb/config/i386/nm-i386.h @@ -93,7 +93,7 @@ extern int i386_remove_hw_breakpoint (CORE_ADDR addr, void *shadow); one that caused the trap. Therefore we don't need to step over it. But we do need to reset the status register to avoid another trap. */ -#define HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT 1 #define STOPPED_BY_WATCHPOINT(W) (i386_stopped_data_address () != 0) diff --git a/gdb/config/i386/nm-i386sco5.h b/gdb/config/i386/nm-i386sco5.h index 37a4b16..65f3176 100644 --- a/gdb/config/i386/nm-i386sco5.h +++ b/gdb/config/i386/nm-i386sco5.h @@ -63,7 +63,7 @@ extern int kernel_u_size (void); /* After a watchpoint trap, the PC points to the instruction which caused the trap. But we can continue over it without disabling the trap. */ -#define HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT 1 #define HAVE_STEPPABLE_WATCHPOINT #define STOPPED_BY_WATCHPOINT(W) \ diff --git a/gdb/config/i386/nm-i386sol2.h b/gdb/config/i386/nm-i386sol2.h index 8a51942..aeb89a2 100644 --- a/gdb/config/i386/nm-i386sol2.h +++ b/gdb/config/i386/nm-i386sol2.h @@ -32,7 +32,7 @@ /* When a hardware watchpoint fires off the PC will be left at the instruction following the one which caused the watchpoint. It will *NOT* be necessary for GDB to step over the watchpoint. */ -#define HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT 1 /* Solaris x86 2.6 and 2.7 targets have a kernel bug when stepping over an instruction that causes a page fault without triggering diff --git a/gdb/config/s390/nm-linux.h b/gdb/config/s390/nm-linux.h index 3846579..727a66eb 100644 --- a/gdb/config/s390/nm-linux.h +++ b/gdb/config/s390/nm-linux.h @@ -51,7 +51,7 @@ extern int kernel_u_size (void); /* WATCHPOINT SPECIFIC STUFF */ #define TARGET_HAS_HARDWARE_WATCHPOINTS -#define HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT 1 #define target_insert_watchpoint(addr, len, type) \ s390_insert_watchpoint (PIDGET (inferior_ptid), addr, len, type) diff --git a/gdb/config/sparc/nm-sun4sol2.h b/gdb/config/sparc/nm-sun4sol2.h index 3cad417..8ad58a1 100644 --- a/gdb/config/sparc/nm-sun4sol2.h +++ b/gdb/config/sparc/nm-sun4sol2.h @@ -51,7 +51,7 @@ /* When a hardware watchpoint fires off the PC will be left at the instruction following the one which caused the watchpoint. It will *NOT* be necessary for GDB to step over the watchpoint. */ -#define HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT 1 extern int procfs_stopped_by_watchpoint (ptid_t); #define STOPPED_BY_WATCHPOINT(W) \ diff --git a/gdb/infrun.c b/gdb/infrun.c index f864442..f65af35 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -226,13 +226,6 @@ a command like `return' or `jump' to continue execution."); #define HAVE_STEPPABLE_WATCHPOINT 1 #endif -#ifndef HAVE_CONTINUABLE_WATCHPOINT -#define HAVE_CONTINUABLE_WATCHPOINT 0 -#else -#undef HAVE_CONTINUABLE_WATCHPOINT -#define HAVE_CONTINUABLE_WATCHPOINT 1 -#endif - #ifndef CANNOT_STEP_HW_WATCHPOINTS #define CANNOT_STEP_HW_WATCHPOINTS 0 #else diff --git a/gdb/target.c b/gdb/target.c index 683561f..4de246c 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -573,6 +573,7 @@ update_current_target (void) INHERIT (to_remove_watchpoint, t); INHERIT (to_stopped_data_address, t); INHERIT (to_stopped_by_watchpoint, t); + INHERIT (to_have_continuable_watchpoint, t); INHERIT (to_region_size_ok_for_hw_watchpoint, t); INHERIT (to_terminal_init, t); INHERIT (to_terminal_inferior, t); diff --git a/gdb/target.h b/gdb/target.h index 80e6538..f081bd3 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -256,6 +256,7 @@ struct target_ops int (*to_remove_watchpoint) (CORE_ADDR, int, int); int (*to_insert_watchpoint) (CORE_ADDR, int, int); int (*to_stopped_by_watchpoint) (void); + int to_have_continuable_watchpoint; CORE_ADDR (*to_stopped_data_address) (void); int (*to_region_size_ok_for_hw_watchpoint) (int); void (*to_terminal_init) (void); @@ -963,6 +964,13 @@ extern void (*target_new_objfile_hook) (struct objfile *); (*current_target.to_stopped_by_watchpoint) () #endif +/* Non-zero if we have continuable watchpoints */ + +#ifndef HAVE_CONTINUABLE_WATCHPOINT +#define HAVE_CONTINUABLE_WATCHPOINT \ + (current_target.to_have_continuable_watchpoint) +#endif + /* HP-UX supplies these operations, which respectively disable and enable the memory page-protections that are used to implement hardware watchpoints on that platform. See wait_for_inferior's use of these. */ -- 2.7.4