diff options
author | Kris Warkentin <kewarken@qnx.com> | 2003-02-24 21:56:51 +0000 |
---|---|---|
committer | Kris Warkentin <kewarken@qnx.com> | 2003-02-24 21:56:51 +0000 |
commit | 7df1a32481bceebdcca416187a97c20c12c4a676 (patch) | |
tree | 1d9ce8d894b26fd3f89d9cfe2c989cbb8ddfcc0d | |
parent | f46169db7af74c579697433a58ab325ff1e78381 (diff) | |
download | gdb-7df1a32481bceebdcca416187a97c20c12c4a676.zip gdb-7df1a32481bceebdcca416187a97c20c12c4a676.tar.gz gdb-7df1a32481bceebdcca416187a97c20c12c4a676.tar.bz2 |
add HAVE_CONTINUABLE_WATCHPOINT to target_ops
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/config/i386/nm-i386.h | 2 | ||||
-rw-r--r-- | gdb/config/i386/nm-i386sco5.h | 2 | ||||
-rw-r--r-- | gdb/config/i386/nm-i386sol2.h | 2 | ||||
-rw-r--r-- | gdb/config/s390/nm-linux.h | 2 | ||||
-rw-r--r-- | gdb/config/sparc/nm-sun4sol2.h | 2 | ||||
-rw-r--r-- | gdb/infrun.c | 7 | ||||
-rw-r--r-- | gdb/target.c | 1 | ||||
-rw-r--r-- | 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 <kewarken@qnx.com> + + * 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 <ezannoni@redhat.com> * 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. */ |