diff options
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/linux-aarch64-low.c | 17 |
2 files changed, 16 insertions, 6 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index d8a817f..617c249 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,10 @@ 2015-12-11 Yao Qi <yao.qi@linaro.org> + * linux-aarch64-low.c (aarch64_breakpoint_at): Call + arm_breakpoint_at if the process is 32-bit. + +2015-12-11 Yao Qi <yao.qi@linaro.org> + * linux-aarch32-low.c [__aarch64__]: Use arm_abi_breakpoint arm breakpoint. diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c index 5fd3f51..b4eb36b 100644 --- a/gdb/gdbserver/linux-aarch64-low.c +++ b/gdb/gdbserver/linux-aarch64-low.c @@ -211,14 +211,19 @@ static const gdb_byte aarch64_breakpoint[] = {0x00, 0x00, 0x20, 0xd4}; static int aarch64_breakpoint_at (CORE_ADDR where) { - gdb_byte insn[aarch64_breakpoint_len]; + if (is_64bit_tdesc ()) + { + gdb_byte insn[aarch64_breakpoint_len]; - (*the_target->read_memory) (where, (unsigned char *) &insn, - aarch64_breakpoint_len); - if (memcmp (insn, aarch64_breakpoint, aarch64_breakpoint_len) == 0) - return 1; + (*the_target->read_memory) (where, (unsigned char *) &insn, + aarch64_breakpoint_len); + if (memcmp (insn, aarch64_breakpoint, aarch64_breakpoint_len) == 0) + return 1; - return 0; + return 0; + } + else + return arm_breakpoint_at (where); } static void |