[pushed] gdbserver: fix format string warning in win32-low.cc (was: Re: [PATCH v3 29/29] Add pending stop support to gdbserver's Windows port)

Message ID eb668112-86d0-7ba5-5da7-95b4db2a081c@simark.ca
State New
Headers show
Series
  • [pushed] gdbserver: fix format string warning in win32-low.cc (was: Re: [PATCH v3 29/29] Add pending stop support to gdbserver's Windows port)
Related show

Commit Message

Simon Marchi April 16, 2020, 1:11 a.m.
On 2020-03-13 3:08 p.m., Tom Tromey wrote:
> This changes gdbserver to also handle pending stops, the same way that

> gdb does.  This is PR gdb/22992.

> 

> gdbserver/ChangeLog

> 2020-03-13  Tom Tromey  <tromey@adacore.com>

> 

> 	PR gdb/22992

> 	* win32-low.c (child_continue): Call matching_pending_stop.

> 	(get_child_debug_event): Call fetch_pending_stop.  Push pending

> 	stop when needed.

> ---

>  gdbserver/ChangeLog    |  7 +++++++

>  gdbserver/win32-low.cc | 34 +++++++++++++++++++++++++++++++---

>  2 files changed, 38 insertions(+), 3 deletions(-)


I pushed the following patch to fix a compilation error on Cygwin following this patch.

From e2275c6ee8caa98d6526422743a97d5dd5ac040d Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>

Date: Wed, 15 Apr 2020 21:09:17 -0400
Subject: [PATCH] gdbserver: fix format string warning in win32-low.cc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When compiling on Cygwin, we get:

      CXX    win32-low.o
    /home/smarchi/src/binutils-gdb/gdbserver/win32-low.cc: In function ‘int get_child_debug_event(DWORD*, target_waitstatus*)’:
    /home/smarchi/src/binutils-gdb/gdbserver/win32-low.cc:1459:17: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘long int’ [-Werror=format=]
     1459 |       OUTMSG2 (("get_windows_debug_event - "
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1460 |   "unexpected stop in 0x%x (expecting 0x%x)\n",
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1461 |   ptid.lwp (), desired_stop_thread_id));
          |   ~~~~~~~~~~~
          |            |
          |            long int
    /home/smarchi/src/binutils-gdb/gdbserver/win32-low.cc:52:11: note: in definition of macro ‘OUTMSG2’
       52 |    printf X;    \
          |           ^
    /home/smarchi/src/binutils-gdb/gdbserver/win32-low.cc:1460:26: note: format string is defined here
     1460 |   "unexpected stop in 0x%x (expecting 0x%x)\n",
          |                         ~^
          |                          |
          |                          unsigned int
          |                         %lx

`ptid.lwp ()` is a `long` value, so it indeed needs the `l` size modifier.

gdbserver/ChangeLog:

	* win32-low.cc (get_child_debug_event): Fix format string warning.
---
 gdbserver/ChangeLog    | 4 ++++
 gdbserver/win32-low.cc | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.26.0

Patch

diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index 2b381455ed79..2abe0f1268c2 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,3 +1,7 @@ 
+2020-04-15  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* win32-low.cc (get_child_debug_event): Fix format string warning.
+
 2020-04-13  Tom Tromey  <tom@tromey.com>

 	* server.h (gdb_fildes_t): Remove typedef.
diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
index e1226b4b0db0..75305a4cfabb 100644
--- a/gdbserver/win32-low.cc
+++ b/gdbserver/win32-low.cc
@@ -1457,7 +1457,7 @@  get_child_debug_event (DWORD *continue_status,
       /* Pending stop.  See the comment by the definition of
 	 "pending_stops" for details on why this is needed.  */
       OUTMSG2 (("get_windows_debug_event - "
-		"unexpected stop in 0x%x (expecting 0x%x)\n",
+		"unexpected stop in 0x%lx (expecting 0x%x)\n",
 		ptid.lwp (), desired_stop_thread_id));
       maybe_adjust_pc ();
       pending_stops.push_back ({(DWORD) ptid.lwp (), *ourstatus, current_event});