Cygwin: Don't change pgid to ctty pgid under debugger

_pinfo::set_ctty sets myself's pgid to the ctty pgid if the process has
been started from a non-Cygwin process.  This isn't the right thing to
do when started from GDB.  GDB starts the application via standard
Windows means, not via Cygwin fork/exec, so it's treated as being
a non-Cygwin parent.

But we want the app running in it's own process group.  So skip this
step when running under a debugger

Signed-off-by: Corinna Vinschen <corinna-cygwin@cygwin.com>
This commit is contained in:
Corinna Vinschen 2019-07-25 10:40:03 +02:00
parent a13145a30d
commit 2232498c71
1 changed files with 5 additions and 1 deletions

View File

@ -554,7 +554,11 @@ _pinfo::set_ctty (fhandler_termios *fh, int flags)
syscall_printf ("attaching %s sid %d, pid %d, pgid %d, tty->pgid %d, tty->sid %d",
__ctty (), sid, pid, pgid, tc.getpgid (), tc.getsid ());
if (!cygwin_finished_initializing && !myself->cygstarted
&& pgid == pid && tc.getpgid () && tc.getsid ())
&& pgid == pid && tc.getpgid () && tc.getsid ()
/* Even GDB starts app via CreateProcess which changes cygstarted.
This results in setting the wrong pgid here, so just skip this
under debugger. */
&& !being_debugged ())
pgid = tc.getpgid ();
/* May actually need to do this: