summaryrefslogtreecommitdiff
path: root/gdb/arm-linux-tdep.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2011-12-07 20:53:06 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2011-12-07 20:53:06 +0000
commit9701bf8e07c4e9dd4823436b52f1dcecd1d5dd77 (patch)
tree66a1fe3928b3a31cfc89f15c8c24ad19a7e5ced6 /gdb/arm-linux-tdep.c
parent835c5cceddc84b12831e7bb4593843bdee1e4545 (diff)
downloadgdb-9701bf8e07c4e9dd4823436b52f1dcecd1d5dd77.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.c7
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