Use arm_eabi_breakpoint on aarch32
authorYao Qi <yao.qi@linaro.org>
Fri, 11 Dec 2015 11:19:52 +0000 (11:19 +0000)
committerYao Qi <yao.qi@linaro.org>
Fri, 11 Dec 2015 11:19:52 +0000 (11:19 +0000)
Nowdays, GDBserver chooses arm breakpoint instructions by checking
macro __ARM_EABI__.  When aarch64 GDBserver debugs arm program,
arm_eabi_breakpoint is still needed, but __ARM_EABI__ isn't defined
in aarch64 compiler.  This causes GDBserver chooses the wrong
breakpoint instruction for arm program.  This patch fixes it.

gdb/gdbserver:

2015-12-11  Yao Qi  <yao.qi@linaro.org>

* linux-aarch32-low.c [__aarch64__]: Use arm_abi_breakpoint
arm breakpoint.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-aarch32-low.c

index 7f7b6c1..d8a817f 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-11  Yao Qi  <yao.qi@linaro.org>
+
+       * linux-aarch32-low.c [__aarch64__]: Use arm_abi_breakpoint
+       arm breakpoint.
+
 2015-12-07  Yao Qi  <yao.qi@linaro.org>
 
        * configure.srv: Append arm.o to srv_tgtobj for
index 7379350..930e73a 100644 (file)
@@ -146,10 +146,10 @@ struct regs_info regs_info_aarch32 =
    ABI's breakpoint instruction.  For now at least.  */
 #define arm_eabi_breakpoint 0xe7f001f0UL
 
-#ifndef __ARM_EABI__
-static const unsigned long arm_breakpoint = arm_abi_breakpoint;
-#else
+#if (defined __ARM_EABI__ || defined __aarch64__)
 static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
+#else
+static const unsigned long arm_breakpoint = arm_abi_breakpoint;
 #endif
 
 #define arm_breakpoint_len 4