diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2011-12-07 20:53:08 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2011-12-07 20:53:08 +0000 |
commit | 35f73cfc810658302b9e320cc7294a1598fc0317 (patch) | |
tree | 3de09c2d4b3aa7f7a619894d353938a01757308d /gdb/arm-linux-tdep.c | |
parent | bd340a044ccea7f1810df7626726ab7ff731693f (diff) | |
download | binutils-gdb-35f73cfc810658302b9e320cc7294a1598fc0317.tar.gz |
* arm-tdep.h (arm_deal_with_atomic_sequence): Add prototype.
* arm-tdep.c (thumb_deal_with_atomic_sequence_raw): New function.
(arm_deal_with_atomic_sequence_raw): Likewise.
(arm_deal_with_atomic_sequence): Likewise.
(arm_software_single_step): Call it.
* arm-linux-tdep.c (arm_linux_software_single_step): Likewise.
Diffstat (limited to 'gdb/arm-linux-tdep.c')
-rw-r--r-- | gdb/arm-linux-tdep.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index b5b56de9710..bee33e42b74 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -843,7 +843,12 @@ arm_linux_software_single_step (struct frame_info *frame) { struct gdbarch *gdbarch = get_frame_arch (frame); struct address_space *aspace = get_frame_address_space (frame); - CORE_ADDR next_pc = arm_get_next_pc (frame, get_frame_pc (frame)); + CORE_ADDR next_pc; + + if (arm_deal_with_atomic_sequence (frame)) + return 1; + + next_pc = arm_get_next_pc (frame, get_frame_pc (frame)); /* The Linux kernel offers some user-mode helpers in a high page. We can not read this page (as of 2.6.23), and even if we could then we couldn't |