add HAVE_CONTINUABLE_WATCHPOINT to target_ops

This commit is contained in:
Kris Warkentin 2003-02-24 21:56:51 +00:00
parent f46169db7a
commit 7df1a32481
9 changed files with 25 additions and 12 deletions

View file

@ -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> 2003-02-24 Elena Zannoni <ezannoni@redhat.com>
* MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop * MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop

View file

@ -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. 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. */ 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) #define STOPPED_BY_WATCHPOINT(W) (i386_stopped_data_address () != 0)

View file

@ -63,7 +63,7 @@ extern int kernel_u_size (void);
/* After a watchpoint trap, the PC points to the instruction which /* After a watchpoint trap, the PC points to the instruction which
caused the trap. But we can continue over it without disabling the caused the trap. But we can continue over it without disabling the
trap. */ trap. */
#define HAVE_CONTINUABLE_WATCHPOINT #define HAVE_CONTINUABLE_WATCHPOINT 1
#define HAVE_STEPPABLE_WATCHPOINT #define HAVE_STEPPABLE_WATCHPOINT
#define STOPPED_BY_WATCHPOINT(W) \ #define STOPPED_BY_WATCHPOINT(W) \

View file

@ -32,7 +32,7 @@
/* When a hardware watchpoint fires off the PC will be left at the /* When a hardware watchpoint fires off the PC will be left at the
instruction following the one which caused the watchpoint. instruction following the one which caused the watchpoint.
It will *NOT* be necessary for GDB to step over 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 /* Solaris x86 2.6 and 2.7 targets have a kernel bug when stepping
over an instruction that causes a page fault without triggering over an instruction that causes a page fault without triggering

View file

@ -51,7 +51,7 @@ extern int kernel_u_size (void);
/* WATCHPOINT SPECIFIC STUFF */ /* WATCHPOINT SPECIFIC STUFF */
#define TARGET_HAS_HARDWARE_WATCHPOINTS #define TARGET_HAS_HARDWARE_WATCHPOINTS
#define HAVE_CONTINUABLE_WATCHPOINT #define HAVE_CONTINUABLE_WATCHPOINT 1
#define target_insert_watchpoint(addr, len, type) \ #define target_insert_watchpoint(addr, len, type) \
s390_insert_watchpoint (PIDGET (inferior_ptid), addr, len, type) s390_insert_watchpoint (PIDGET (inferior_ptid), addr, len, type)

View file

@ -51,7 +51,7 @@
/* When a hardware watchpoint fires off the PC will be left at the /* When a hardware watchpoint fires off the PC will be left at the
instruction following the one which caused the watchpoint. instruction following the one which caused the watchpoint.
It will *NOT* be necessary for GDB to step over 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); extern int procfs_stopped_by_watchpoint (ptid_t);
#define STOPPED_BY_WATCHPOINT(W) \ #define STOPPED_BY_WATCHPOINT(W) \

View file

@ -226,13 +226,6 @@ a command like `return' or `jump' to continue execution.");
#define HAVE_STEPPABLE_WATCHPOINT 1 #define HAVE_STEPPABLE_WATCHPOINT 1
#endif #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 #ifndef CANNOT_STEP_HW_WATCHPOINTS
#define CANNOT_STEP_HW_WATCHPOINTS 0 #define CANNOT_STEP_HW_WATCHPOINTS 0
#else #else

View file

@ -573,6 +573,7 @@ update_current_target (void)
INHERIT (to_remove_watchpoint, t); INHERIT (to_remove_watchpoint, t);
INHERIT (to_stopped_data_address, t); INHERIT (to_stopped_data_address, t);
INHERIT (to_stopped_by_watchpoint, t); INHERIT (to_stopped_by_watchpoint, t);
INHERIT (to_have_continuable_watchpoint, t);
INHERIT (to_region_size_ok_for_hw_watchpoint, t); INHERIT (to_region_size_ok_for_hw_watchpoint, t);
INHERIT (to_terminal_init, t); INHERIT (to_terminal_init, t);
INHERIT (to_terminal_inferior, t); INHERIT (to_terminal_inferior, t);

View file

@ -256,6 +256,7 @@ struct target_ops
int (*to_remove_watchpoint) (CORE_ADDR, int, int); int (*to_remove_watchpoint) (CORE_ADDR, int, int);
int (*to_insert_watchpoint) (CORE_ADDR, int, int); int (*to_insert_watchpoint) (CORE_ADDR, int, int);
int (*to_stopped_by_watchpoint) (void); int (*to_stopped_by_watchpoint) (void);
int to_have_continuable_watchpoint;
CORE_ADDR (*to_stopped_data_address) (void); CORE_ADDR (*to_stopped_data_address) (void);
int (*to_region_size_ok_for_hw_watchpoint) (int); int (*to_region_size_ok_for_hw_watchpoint) (int);
void (*to_terminal_init) (void); void (*to_terminal_init) (void);
@ -963,6 +964,13 @@ extern void (*target_new_objfile_hook) (struct objfile *);
(*current_target.to_stopped_by_watchpoint) () (*current_target.to_stopped_by_watchpoint) ()
#endif #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 /* HP-UX supplies these operations, which respectively disable and enable
the memory page-protections that are used to implement hardware watchpoints the memory page-protections that are used to implement hardware watchpoints
on that platform. See wait_for_inferior's use of these. */ on that platform. See wait_for_inferior's use of these. */