From e8ffc436d9d849eed52af64568d9f37aeaddbd9e Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 20 Mar 2015 10:15:21 +0000 Subject: [PATCH 1/1] Don't call set_gdbarch_cannot_step_breakpoint in aarch64_gdbarch_init Hi, I am looking at the following fails in aarch64-linux, stepi^M 47 NOP; /* after permanent bp */^M (gdb) FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: stepi signal with handler: single-step to handler the test expects GDB single step into signal handler, but GDB doesn't. The code in infrun.c:resume /* Most targets can step a breakpoint instruction, thus executing it normally. But if this one cannot, just continue and we will hit it anyway. */ if (gdbarch_cannot_step_breakpoint (gdbarch)) step = 0; change the intended action from "step" to "continue". The gdbarch method cannot_step_breakpoint isn't documented well, and I don't get much clue after explore the history. However, from the comments above, aarch64-linux can step a breakpoint instruction, so don't need to call set_gdbarch_cannot_step_breakpoint. gdb: 2015-03-20 Yao Qi * aarch64-tdep.c (aarch64_gdbarch_init): Don't call set_gdbarch_cannot_step_breakpoint. --- gdb/ChangeLog | 5 +++++ gdb/aarch64-tdep.c | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a8b8850f7f..ad074c3676 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-03-20 Yao Qi + + * aarch64-tdep.c (aarch64_gdbarch_init): Don't call + set_gdbarch_cannot_step_breakpoint. + 2015-03-19 Pedro Alves * linux-nat.c (linux_resume_one_lwp): Rename to ... diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 472ce703e5..ddc902250e 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -2698,7 +2698,6 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Breakpoint manipulation. */ set_gdbarch_breakpoint_from_pc (gdbarch, aarch64_breakpoint_from_pc); - set_gdbarch_cannot_step_breakpoint (gdbarch, 1); set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1); set_gdbarch_software_single_step (gdbarch, aarch64_software_single_step); -- 2.34.1