public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
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;
 

  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).