PR 34052 kill: Terminate inferior with non-zero exit code on Windows

Message ID PAWPR02MB102409DB57A64481BFB3EAB82835AA@PAWPR02MB10240.eurprd02.prod.outlook.com
State New
Headers
Series PR 34052 kill: Terminate inferior with non-zero exit code on Windows |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Test passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Test passed

Commit Message

Luca Bacci April 7, 2026, 10:52 a.m. UTC
  See https://sourceware.org/bugzilla/show_bug.cgi?id=34052

Best Regards,
Luca
From 81457be16cd49c5c7daa5781b287656a8188d483 Mon Sep 17 00:00:00 2001
From: Luca Bacci <luca.bacci@outlook.com>
Date: Tue, 7 Apr 2026 12:15:52 +0200
Subject: [PATCH] PR 34052 kill: Terminate inferior with non-zero exit code on
 Windows

Don't terminate the inferior with exit code 0 (a 'successful' exit
status). Rather, use the standard exit code 137 as for SIGKILL on
Linux.

Signed-off-by: Luca Bacci <luca.bacci@outlook.com>
---
 gdb/windows-nat.c      | 2 +-
 gdbserver/win32-low.cc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
  

Comments

Andrew Burgess April 10, 2026, 8:54 a.m. UTC | #1
Luca Bacci <luca.bacci@outlook.com> writes:

> See https://sourceware.org/bugzilla/show_bug.cgi?id=34052
>
> Best Regards,
> Luca
> From 81457be16cd49c5c7daa5781b287656a8188d483 Mon Sep 17 00:00:00 2001
> From: Luca Bacci <luca.bacci@outlook.com>
> Date: Tue, 7 Apr 2026 12:15:52 +0200
> Subject: [PATCH] PR 34052 kill: Terminate inferior with non-zero exit code on
>  Windows
>
> Don't terminate the inferior with exit code 0 (a 'successful' exit
> status). Rather, use the standard exit code 137 as for SIGKILL on
> Linux.
>
> Signed-off-by: Luca Bacci <luca.bacci@outlook.com>

Please remove the "Signed-off-by" tag, these have no meaning in GDB, but
might do in the future if we ever adopt DCO, so adding them right now is
confusing.

Also, please add a tag:

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34052

to link to the bug.

I don't do much (any) Windows stuff, but the code change makes sense to
me.  I'll hold off adding an approved-tag in case someone with more
Windows knowledge wants to chip in, but I think this is fine.

Reviewed-By: Andrew Burgess <aburgess@redhat.com>

Thanks,
Andrew

> ---
>  gdb/windows-nat.c      | 2 +-
>  gdbserver/win32-low.cc | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
> index e25ae81f..964d87c2 100644
> --- a/gdb/windows-nat.c
> +++ b/gdb/windows-nat.c
> @@ -2352,7 +2352,7 @@ windows_xfer_memory (gdb_byte *readbuf, const gdb_byte *writebuf,
>  void
>  windows_nat_target::kill ()
>  {
> -  CHECK (TerminateProcess (windows_process->handle, 0));
> +  CHECK (TerminateProcess (windows_process->handle, 137));
>  
>    for (;;)
>      {
> diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
> index ddc5e547..adb4c08b 100644
> --- a/gdbserver/win32-low.cc
> +++ b/gdbserver/win32-low.cc
> @@ -663,7 +663,7 @@ win32_clear_process ()
>  int
>  win32_process_target::kill (process_info *process)
>  {
> -  TerminateProcess (windows_process.handle, 0);
> +  TerminateProcess (windows_process.handle, 137);
>    for (;;)
>      {
>        if (!child_continue (DBG_CONTINUE, -1))
> -- 
> 2.49.0.windows.1
  

Patch

diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index e25ae81f..964d87c2 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -2352,7 +2352,7 @@  windows_xfer_memory (gdb_byte *readbuf, const gdb_byte *writebuf,
 void
 windows_nat_target::kill ()
 {
-  CHECK (TerminateProcess (windows_process->handle, 0));
+  CHECK (TerminateProcess (windows_process->handle, 137));
 
   for (;;)
     {
diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
index ddc5e547..adb4c08b 100644
--- a/gdbserver/win32-low.cc
+++ b/gdbserver/win32-low.cc
@@ -663,7 +663,7 @@  win32_clear_process ()
 int
 win32_process_target::kill (process_info *process)
 {
-  TerminateProcess (windows_process.handle, 0);
+  TerminateProcess (windows_process.handle, 137);
   for (;;)
     {
       if (!child_continue (DBG_CONTINUE, -1))