From: Yao Qi <qiyaoltc@gmail.com>
To: Antoine Tremblay <antoine.tremblay@ericsson.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH v8 5/7] Support software single step on ARM in GDBServer
Date: Wed, 06 Jan 2016 14:23:00 -0000 [thread overview]
Message-ID: <86a8oiyegx.fsf@gmail.com> (raw)
In-Reply-To: <1450361684-29536-6-git-send-email-antoine.tremblay@ericsson.com> (Antoine Tremblay's message of "Thu, 17 Dec 2015 09:14:42 -0500")
Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
Hi Antoine,
> --- a/gdb/gdbserver/linux-aarch32-low.h
> +++ b/gdb/gdbserver/linux-aarch32-low.h
> @@ -15,6 +15,27 @@
> You should have received a copy of the GNU General Public License
> along with this program. If not, see <http://www.gnu.org/licenses/>. */
>
> +/* Correct in either endianness. */
> +#define arm_abi_breakpoint 0xef9f0001UL
> +
> +/* For new EABI binaries. We recognize it regardless of which ABI
> + is used for gdbserver, so single threaded debugging should work
> + OK, but for multi-threaded debugging we only insert the current
> + 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
> +static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
> +#endif
> +
> +#define arm_breakpoint_len 4
> +static const unsigned short thumb_breakpoint = 0xde01;
> +#define thumb_breakpoint_len 2
> +static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
> +#define thumb2_breakpoint_len 4
> +
This change causes GDBserver build errors on both ARM and AArch64, which
are shown in the commit log of the patch below.
--
Yao (齐尧)
From 33ebce2938c38904e9a9710d51e40c4c94a79dfe Mon Sep 17 00:00:00 2001
From: Yao Qi <yao.qi@linaro.org>
Date: Wed, 6 Jan 2016 12:11:41 +0000
Subject: [PATCH] [ARM/AArch64] Fix -Werror=unused-const-variable warnings in
GDBserver
This patch fixes gcc warning when build ARM GDBserver and AArch64
GDBserver,
AArch64 GDBserver:
gdb/gdbserver/linux-aarch32-low.h:36:29: error: 'thumb2_breakpoint' defined but not used [-Werror=unused-const-variable]
static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
^
gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable]
static const unsigned short thumb_breakpoint = 0xde01;
^
gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable]
static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
^
cc1: all warnings being treated as errors
ARM GDBserver:
gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable]
static const unsigned short thumb_breakpoint = 0xde01;
^~~~~~~~~~~~~~~~
gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable]
static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
^~~~~~~~~~~~~~
by simply moving these macros and variables to
linux-aarch32-low.c and only declare thumb2_breakpoint in
linux-aarch32-low.h, which is not perfect, and reveals some issues
in recent arm GDBserver software single step changes. I'll post
follow-up patches.
gdb/gdbserver:
2016-01-06 Yao Qi <yao.qi@linaro.org>
* linux-aarch32-low.h (arm_abi_breakpoint): Move to
linux-aarch32-low.c.
(arm_eabi_breakpoint, arm_breakpoint): Likewise.
(arm_breakpoint_len, thumb_breakpoint_len): Likewise.
(thumb2_breakpoint, thumb2_breakpoint_len): Likewise.
(thumb2_breakpoint): Declare.
* linux-aarch32-low.c (arm_abi_breakpoint): Moved from
linux-aarch32-low.h.
(arm_eabi_breakpoint, arm_breakpoint): Likewise.
(arm_breakpoint_len, thumb_breakpoint_len): Likewise.
(thumb2_breakpoint, thumb2_breakpoint_len): Likewise.
diff --git a/gdb/gdbserver/linux-aarch32-low.c b/gdb/gdbserver/linux-aarch32-low.c
index 74deca3..ed66e08 100644
--- a/gdb/gdbserver/linux-aarch32-low.c
+++ b/gdb/gdbserver/linux-aarch32-low.c
@@ -27,6 +27,27 @@
#include <elf.h>
#endif
+/* Correct in either endianness. */
+#define arm_abi_breakpoint 0xef9f0001UL
+
+/* For new EABI binaries. We recognize it regardless of which ABI
+ is used for gdbserver, so single threaded debugging should work
+ OK, but for multi-threaded debugging we only insert the current
+ ABI's breakpoint instruction. For now at least. */
+#define arm_eabi_breakpoint 0xe7f001f0UL
+
+#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
+static const unsigned short thumb_breakpoint = 0xde01;
+#define thumb_breakpoint_len 2
+const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
+#define thumb2_breakpoint_len 4
+
/* Some older versions of GNU/Linux and Android do not define
the following macros. */
#ifndef NT_ARM_VFP
diff --git a/gdb/gdbserver/linux-aarch32-low.h b/gdb/gdbserver/linux-aarch32-low.h
index c8f6646..5c68454 100644
--- a/gdb/gdbserver/linux-aarch32-low.h
+++ b/gdb/gdbserver/linux-aarch32-low.h
@@ -15,26 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-/* Correct in either endianness. */
-#define arm_abi_breakpoint 0xef9f0001UL
-
-/* For new EABI binaries. We recognize it regardless of which ABI
- is used for gdbserver, so single threaded debugging should work
- OK, but for multi-threaded debugging we only insert the current
- ABI's breakpoint instruction. For now at least. */
-#define arm_eabi_breakpoint 0xe7f001f0UL
-
-#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
-static const unsigned short thumb_breakpoint = 0xde01;
-#define thumb_breakpoint_len 2
-static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
-#define thumb2_breakpoint_len 4
+extern const unsigned short thumb2_breakpoint[];
extern struct regs_info regs_info_aarch32;
next prev parent reply other threads:[~2016-01-06 14:23 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 14:14 [PATCH v8 0/7] Support software single step and conditional breakpoints " Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 6/7] Enable software single stepping for while-stepping actions " Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 7/7] Enable conditional breakpoints for targets that support software single step " Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 1/7] Replace breakpoint_reinsert_addr by get_next_pcs operation " Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 2/7] Share some ARM target dependent code from GDB with GDBServer Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 5/7] Support software single step on ARM in GDBServer Antoine Tremblay
2015-12-21 13:58 ` Yao Qi
2016-01-04 12:59 ` Antoine Tremblay
2016-01-06 14:23 ` Yao Qi [this message]
2016-01-06 14:36 ` Antoine Tremblay
2016-01-06 14:56 ` Yao Qi
2016-01-06 14:58 ` Antoine Tremblay
2016-01-06 14:42 ` Yao Qi
2016-01-06 14:50 ` Antoine Tremblay
2016-01-06 15:04 ` Yao Qi
2016-01-13 16:13 ` Yao Qi
2016-01-13 19:10 ` Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 4/7] Share regcache function regcache_raw_read_unsigned Antoine Tremblay
2015-12-17 14:15 ` [PATCH v8 3/7] Refactor arm_software_single_step to use regcache Antoine Tremblay
2016-01-18 10:35 ` Yao Qi
2016-01-18 13:07 ` Yao Qi
2016-01-18 14:02 ` Antoine Tremblay
2016-01-21 7:52 ` Yao Qi
2015-12-18 12:56 ` [PATCH v8 0/7] Support software single step and conditional breakpoints on ARM in GDBServer Antoine Tremblay
2015-12-18 16:45 ` Antoine Tremblay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86a8oiyegx.fsf@gmail.com \
--to=qiyaoltc@gmail.com \
--cc=antoine.tremblay@ericsson.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).