X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 022693988838 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1611630869; bh=jan3Kk7HDGao0dB6F4yhqhGa7BOAb1DeVWc1PcqpGmI=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=LNy05nvtHRt3UsiVyL5DNRpgZbbz+gL2uNCBigVxahCS7Dp6DegnjDDgwhg+M2P0a BfE1Q+wFl4l0vp/YQ3YinRzUt0H2GO65O33KR+1EmjmkRf9/OshdIIxYRHrBDW9Rg3 sfn7yFD/ku2XKDmT5vQdfTIqVkOJmqj5bgD3HlDk= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EA5E6385803C DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com 10Q3Dqnm027823 X-Nifty-SrcIP: [122.249.67.108] Date: Tue, 26 Jan 2021 12:14:02 +0900 To: cygwin AT cygwin DOT com Subject: GDB looses pgrp setting in the terminal for debugged process after break. Message-Id: <20210126121402.167ba4ca0d7d8b747feede9f@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Takashi Yano via Cygwin Reply-To: Takashi Yano Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Cygwin" 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 -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple