aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna-cygwin@cygwin.com>2019-07-25 10:40:03 +0200
committerCorinna Vinschen <corinna-cygwin@cygwin.com>2019-07-25 10:45:52 +0200
commit2232498c712acc97a38fdc297cbe53ba74d0ec2c (patch)
treed577a7fb667feae7e57131ec4a03ad8c23e522fc /winsup
parenta13145a30d5c5e8eaf82cdf65c857a248f9b6765 (diff)
downloadnewlib-2232498c712acc97a38fdc297cbe53ba74d0ec2c.zip
newlib-2232498c712acc97a38fdc297cbe53ba74d0ec2c.tar.gz
newlib-2232498c712acc97a38fdc297cbe53ba74d0ec2c.tar.bz2
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>
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/pinfo.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index cdbd8bd..123784e 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -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: