public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb/Cygwin: Fix attach pid error message
@ 2024-04-29 15:21 Pedro Alves
0 siblings, 0 replies; only message in thread
From: Pedro Alves @ 2024-04-29 15:21 UTC (permalink / raw)
To: gdb-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=43ca4ec2996a6bfbb8726f1c753aeb85fe0f92a4
commit 43ca4ec2996a6bfbb8726f1c753aeb85fe0f92a4
Author: Pedro Alves <pedro@palves.net>
Date: Fri Jun 2 23:40:23 2023 +0100
gdb/Cygwin: Fix attach pid error message
On Cygwin, with "attach PID":
- GDB first tries to interpret PID as a Windows native PID, and tries
to attach to that.
- if the attach fails, GDB then tries to interpret the PID as a
Cygwin PID, and attach to that.
If converting the user-provided PID from a Cygwin PID to a Windows PID
fails, you get this:
(gdb) attach 12345
Can't attach to process 0 (error 2: The system cannot find the file specified.)
Note "process 0".
With the fix in this commit, we'll now get:
(gdb) attach 12345
Can't attach to process 12345 (error 2: The system cannot find the file specified.)
I noticed this while looking at gdb.log after running
gdb.base/attach.exp on Cygwin.
Change-Id: I05b9dc1f3a634a822ea49bb5c61719f5e62c8514
Approved-By: Luis Machado <luis.machado@arm.com>
Diff:
---
gdb/windows-nat.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 3b3239ab938..70f955d9797 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -2048,11 +2048,20 @@ windows_nat_target::attach (const char *args, int from_tty)
#ifdef __CYGWIN__
if (!ok)
{
- /* Try fall back to Cygwin pid. */
- pid = cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid);
+ /* Maybe PID was a Cygwin PID. Try the corresponding native
+ Windows PID. */
+ DWORD winpid = cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid);
- if (pid > 0)
- ok = DebugActiveProcess (pid);
+ if (winpid != 0)
+ {
+ /* It was indeed a Cygwin PID. Fully switch to the
+ Windows PID from here on. We don't do this
+ unconditionally to avoid ending up with PID=0 in the
+ error message below. */
+ pid = winpid;
+
+ ok = DebugActiveProcess (winpid);
+ }
}
#endif
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-04-29 15:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-29 15:21 [binutils-gdb] gdb/Cygwin: Fix attach pid error message Pedro Alves
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).