add HAVE_CONTINUABLE_WATCHPOINT to target_ops
This commit is contained in:
parent
f46169db7a
commit
7df1a32481
9 changed files with 25 additions and 12 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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) \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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) \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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. */
|
||||||
|
|
Loading…
Add table
Reference in a new issue