aboutsummaryrefslogtreecommitdiff
path: root/gdb/windows-nat.c
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2015-06-03 14:28:29 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2015-06-10 13:28:19 +0100
commit5d9c55d355c8e5c688caa3fe43c0d95d538daf35 (patch)
tree4fd0332372bf9da4d266b134190a6774097bf7ee /gdb/windows-nat.c
parent040ea00bb02018cbe21ba732f68134ac91f370d2 (diff)
windows-nat: Also ignore ERROR_INVALID_HANDLE from SuspendThread()
Discussed somewhat in the thread at https://cygwin.com/ml/gdb-patches/2013-06/msg00680.html This is pretty straightforward to demonstrate on Cygwin currently: $ cat main.c int main() { return 0; } $ gcc -g -O0 main.c -o main $ ./gdb ./main [...] (gdb) r Starting program: /wip/binutils-gdb/build.x86_64/gdb/main warning: SuspendThread (tid=0x1cf0) failed. (winerr 6) [Inferior 1 (process 976) exited normally] with this patch applied: $ ./gdb ./main [...] (gdb) r Starting program: /wip/binutils-gdb/build.x86_64/gdb/main [Inferior 1 (process 4852) exited normally] gdb/ChangeLog: 2015-06-03 Jon Turney <jon.turney@dronecode.org.uk> * windows-nat.c (thread_rec): Also ignore ERROR_INVALID_HANDLE from SuspendThread(). Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Diffstat (limited to 'gdb/windows-nat.c')
-rw-r--r--gdb/windows-nat.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 851eb5192d..8a425113a0 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -310,8 +310,11 @@ thread_rec (DWORD id, int get_context)
/* We get Access Denied (5) when trying to suspend
threads that Windows started on behalf of the
debuggee, usually when those threads are just
- about to exit. */
- if (err != ERROR_ACCESS_DENIED)
+ about to exit.
+ We can get Invalid Handle (6) if the main thread
+ has exited. */
+ if (err != ERROR_INVALID_HANDLE
+ && err != ERROR_ACCESS_DENIED)
warning (_("SuspendThread (tid=0x%x) failed."
" (winerr %u)"),
(unsigned) id, (unsigned) err);