aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2011-02-21 15:03:38 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2011-02-21 15:03:38 +0000
commite3039479e46e9f44694c705075f068a196b390e2 (patch)
tree8b7ebe89bc1dd9f87f6ad65f7b288c8e9eefc6b1 /gdb/arm-tdep.c
parentb5db5dfca6f92992b540eaf2fac00f4340f64fa9 (diff)
downloadgdb-e3039479e46e9f44694c705075f068a196b390e2.zip
gdb-e3039479e46e9f44694c705075f068a196b390e2.tar.gz
gdb-e3039479e46e9f44694c705075f068a196b390e2.tar.bz2
ChangeLog:
* arm-linux-nat.c: Include "observer.h" and "gdbthread.h". (PTRACE_GETHBPREGS, PTRACE_SETHBPREGS): Define. (struct arm_linux_hwbp_cap): New type. (arm_linux_get_hwbp_cap): New function. (arm_linux_get_hw_breakpoint_count): Likewise. (arm_linux_get_hw_watchpoint_count): Likewise. (arm_linux_can_use_hw_breakpoint): Likewise. (arm_hwbp_type): New type. (arm_hwbp_control_t): Likewise. (struct arm_linux_hw_breakpoint): Likewise. (struct arm_linux_thread_points): Likewise. (arm_threads): New global variable. (arm_linux_find_breakpoints_by_tid): New function. (arm_hwbp_control_initialize): Likewise. (arm_hwbp_control_is_enabled): Likewise. (arm_hwbp_control_disable): Likewise. (arm_linux_hw_breakpoint_initialize): Likewise. (arm_linux_get_hwbp_type): Likewise. (arm_linux_hw_watchpoint_initialize): Likewise. (arm_linux_hw_breakpoint_equal): Likewise. (arm_linux_insert_hw_breakpoint1): Likewise. (arm_linux_remove_hw_breakpoint1): Likewise. (arm_linux_insert_hw_breakpoint): Likewise. (arm_linux_remove_hw_breakpoint): Likewise. (arm_linux_region_ok_for_hw_watchpoint): Likewise. (arm_linux_insert_watchpoint): Likewise. (arm_linux_remove_watchpoint): Likewise. (arm_linux_stopped_data_address): Likewise. (arm_linux_stopped_by_watchpoint): Likewise. (arm_linux_watchpoint_addr_within_range): Likewise. (arm_linux_new_thread): Likewise. (arm_linux_thread_exit): Likewise. (_initialize_arm_linux_nat): Install hardware breakpoint/watchpoint related target callbacks. Register arm_linux_new_thread and arm_linux_thread_exit. * arm-tdep.h (arm_pc_is_thumb): Add prototype. * arm-tdep.c (arm_pc_is_thumb): Make global. (arm_gdbarch_init): Call set_gdbarch_have_nonsteppable_watchpoint. testsuite/ChangeLog: * lib/gdb.exp (skip_hw_breakpoint_tests): Add arm*-*-* target. (skip_hw_watchpoint_tests): Likewise. (skip_hw_watchpoint_multi_tests): Likewise.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r--gdb/arm-tdep.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 16334bf..f0e9435 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -363,7 +363,7 @@ static CORE_ADDR arm_get_next_pc_raw (struct frame_info *frame,
function. This function should be called for addresses unrelated to
any executing frame; otherwise, prefer arm_frame_is_thumb. */
-static int
+int
arm_pc_is_thumb (struct gdbarch *gdbarch, CORE_ADDR memaddr)
{
struct obj_section *sec;
@@ -8553,6 +8553,9 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (tdep->arm_abi == ARM_ABI_AUTO)
tdep->arm_abi = ARM_ABI_APCS;
+ /* Watchpoints are not steppable. */
+ set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
+
/* We used to default to FPA for generic ARM, but almost nobody
uses that now, and we now provide a way for the user to force
the model. So default to the most useful variant. */