* ppc-linux-nat.c (PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG,
PTRACE_GETSIGINFO): Define. (last_stopped_data_address): New. (ppc_linux_check_watch_resources): New function. (ppc_linux_region_ok_for_hw_watchpoint): New function. (ppc_linux_insert_watchpoint): New function. (ppc_linux_remove_watchpoint): New function. (ppc_linux_stopped_data_address): New function. (ppc_linux_stopped_by_watchpoint): New function. (_initialize_ppc_linux_nat): Set the above hardware watchpoint related target vectors. * rs6000-tdep.c (rs6000_gdbarch_init): Set PPC architectures to have nonsteppable watchpoint. * target.c (default_region_ok_for_hw_watchpoint, debug_to_region_ok_for_hw_watchpoint): New prototypes. (update_current_target): Inherit to_region_ok_for_hw_watchpoint and set default to_region_ok_for_hw_watchpoint. (default_region_ok_for_hw_watchpoint): New function. (debug_to_region_ok_for_hw_watchpoint): New function. (setup_target_debug): Set to_region_ok_for_hw_watchpoint of debug_target. * target.h (struct target_ops): Add a new target vector to_region_ok_for_hw_watchpoint. (TARGET_REGION_OK_FOR_HW_WATCHPOINT): Define this if it is not defined anyplace else.
This commit is contained in:
parent
0d2a638963
commit
e0d24f8d6e
5 changed files with 203 additions and 2 deletions
|
@ -346,6 +346,7 @@ struct target_ops
|
|||
int (*to_stopped_by_watchpoint) (void);
|
||||
int to_have_continuable_watchpoint;
|
||||
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
|
||||
int (*to_region_ok_for_hw_watchpoint) (CORE_ADDR, int);
|
||||
int (*to_region_size_ok_for_hw_watchpoint) (int);
|
||||
void (*to_terminal_init) (void);
|
||||
void (*to_terminal_inferior) (void);
|
||||
|
@ -1031,6 +1032,11 @@ extern void (*deprecated_target_new_objfile_hook) (struct objfile *);
|
|||
(*current_target.to_can_use_hw_breakpoint) (TYPE, CNT, OTHERTYPE);
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_REGION_OK_FOR_HW_WATCHPOINT
|
||||
#define TARGET_REGION_OK_FOR_HW_WATCHPOINT(addr, len) \
|
||||
(*current_target.to_region_ok_for_hw_watchpoint) (addr, len)
|
||||
#endif
|
||||
|
||||
#if !defined(TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT)
|
||||
#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(byte_count) \
|
||||
(*current_target.to_region_size_ok_for_hw_watchpoint) (byte_count)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue