Re: [PATCH v8 5/7] Support software single step on ARM in GDBServer

Yao Qi
2015-12-21T13:58:29Z

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.

--
Yao (齐尧)

From 35adc03f3787405297259a1706608bdeaab4fda9 Mon Sep 17 00:00:00 2001
From: Yao Qi <yao.qi@linaro.org>
Date: Mon, 21 Dec 2015 13:55:45 +0000
Subject: [PATCH] Use arm_eabi_breakpoint on aarch32

This patch is to get b37a6290 back again, which was removed by
d9311bfa by mistake.

gdb/gdbserver:

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

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

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