public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Takashi Yano <takashi.yano@nifty.ne.jp>
To: cygwin@cygwin.com
Subject: GDB looses pgrp setting in the terminal for debugged process after break.
Date: Tue, 26 Jan 2021 12:14:02 +0900	[thread overview]
Message-ID: <20210126121402.167ba4ca0d7d8b747feede9f@nifty.ne.jp> (raw)

Hi GDB maintainer,

In GDB, debugged process cannot continue execution after break
if it reads stdin.

With the following steps, cat is terminated with error.

1) Install coreutils-debuginfo package.
2) Run "gdb cat" in console (command prompt), not in mintty.
3) Enter "start" in gdb.
4) Enter "cont" in gdb.

This results in:
/usr/bin/cat: -: Input/output error

Both gdb-9.2-1 and gdb-10.1-1(TEST) have this problem.

I looked into this problem and found the cause is that the pgid
setting for /usr/bin/cat is lost after break. The following patch
for GDB source resolves the issue. In the following section,
winpid is passed to getpgid() rather than cygwin pid. Also, winpid
is passed to other POSIX system calls such as kill() elsewhere. 

--- inflow.c.orig	2020-05-24 06:10:29.000000000 +0900
+++ inflow.c	2021-01-23 17:48:27.963609500 +0900
@@ -364,11 +364,11 @@
 #ifdef HAVE_TERMIOS_H
 	  /* If we can't tell the inferior's actual process group,
 	     then restore whatever was the foreground pgrp the last
 	     time the inferior was running.  See also comments
 	     describing terminal_state::process_group.  */
-#ifdef HAVE_GETPGID
+#if defined (HAVE_GETPGID) && !defined (__CYGWIN__)
 	  result = tcsetpgrp (0, getpgid (inf->pid));
 #else
 	  result = tcsetpgrp (0, tinfo->process_group);
 #endif
 	  if (result == -1)


I hope the GDB maintainer will check it out.

Addresses: https://cygwin.com/pipermail/cygwin-patches/2021q1/011018.html

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

             reply	other threads:[~2021-01-26  3:14 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-26  3:14 Takashi Yano [this message]
2021-02-05 10:34 ` Takashi Yano
2021-02-05 15:26   ` Takashi Yano
2021-05-02 16:16     ` Takashi Yano
2021-05-06 20:31       ` Jon Turney
2021-05-07  8:33         ` Takashi Yano
2022-01-17 18:57           ` Jon Turney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210126121402.167ba4ca0d7d8b747feede9f@nifty.ne.jp \
    --to=takashi.yano@nifty.ne.jp \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).