[v8,5/7] Support software single step on ARM in GDBServer

Message ID 86bn9jewec.fsf@gmail.com
State New, archived
Headers

Commit Message

Yao Qi Dec. 21, 2015, 1:58 p.m. UTC
  Antoine Tremblay <antoine.tremblay@ericsson.com> writes:

> -#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
> -

> +
> +#ifndef __ARM_EABI__
> +static const unsigned long arm_breakpoint = arm_abi_breakpoint;
> +#else
> +static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
> +#endif

Your code move actually changes the code.  My recent fix
https://sourceware.org/ml/gdb-patches/2015-12/msg00215.html was removed
by mistake.  This breaks the whole aarch64 multi-arch debugging.

I'll push the patch below in.
  

Comments

Antoine Tremblay Jan. 4, 2016, 12:58 p.m. UTC | #1
On 12/21/2015 08:58 AM, Yao Qi wrote:
> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>
>> -#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
>> -
>
>> +
>> +#ifndef __ARM_EABI__
>> +static const unsigned long arm_breakpoint = arm_abi_breakpoint;
>> +#else
>> +static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
>> +#endif
>
> Your code move actually changes the code.  My recent fix
> https://sourceware.org/ml/gdb-patches/2015-12/msg00215.html was removed
> by mistake.  This breaks the whole aarch64 multi-arch debugging.
>
> I'll push the patch below in.
>

Sorry about that, thanks for the fix!

Antoine
  

Patch

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index e38d71d..1d240f2 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@ 
+2015-12-21  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-aarch32-low.h [__aarch64__]: Use arm_abi_breakpoint
+	arm breakpoint.
+
 2015-12-18  Antoine Tremblay  <antoine.tremblay@ericsson.com>
 
 	* server.c (handle_query): Call target_supports_software_single_step.
diff --git a/gdb/gdbserver/linux-aarch32-low.h b/gdb/gdbserver/linux-aarch32-low.h
index d452894..fe0aaf5 100644
--- a/gdb/gdbserver/linux-aarch32-low.h
+++ b/gdb/gdbserver/linux-aarch32-low.h
@@ -24,10 +24,10 @@ 
    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