This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 1/3] New option --cygwin-tty.
- From: Yao Qi <yao at codesourcery dot com>
- To: <gdb-patches at sourceware dot org>
- Date: Thu, 25 Jul 2013 17:04:20 +0800
- Subject: Re: [PATCH 1/3] New option --cygwin-tty.
- References: <1374728963-25187-1-git-send-email-yao at codesourcery dot com> <1374728963-25187-2-git-send-email-yao at codesourcery dot com> <000901ce8909$dd069470$9713bd50$ at muller@ics-cnrs.unistra.fr> <51F0D9D2 dot 1090804 at codesourcery dot com> <20130725081820 dot GA11021 at calimero dot vinschen dot de>
On 07/25/2013 04:18 PM, Corinna Vinschen wrote:
Yeah, I agree, but I am worried that stdio handlers (such as stdout)
>should be set before any writes to them, so we should set the flag
>(cygwin_tty) at the early stage of GDB start up (before command 'set
>windows-os-tty on' is processed). If it is not a problem, I am
>fine.
You can use the _setmode() call at any time to switch text/binary mode
on the descriptors.
The doc on _setmode on MSDN says _setmode () should be called before any
input or output operations.
http://msdn.microsoft.com/en-us/library/tw4k6df8.aspx
"_setmode is typically used to modify the default translation mode of
stdin and stdout, but you can use it on any file. If you apply _setmode
to the file descriptor for a stream, call _setmode before you perform
any input or output operations on the stream."
Beside setmode, we also need setvbuf to disable buffering. It should be
called before any input or output on the stream.
>I am looking at Corinna's example to see how to detect GDB is
>running in Cygwin's TTY. If it works, probably we can get rid of
>this new GDB option completely.
It has been tested under Mingw-w64 and VC++. If you're using Mingw.Org,
it probably needs some tweaking.
Right, it needs some tweaks on headers files for Mingw.Org.
What is the minimum version of cygwin required for this example? In
cygwin 1.7.20, the file name is
"\cygwin-8c26184c318518a4-pty0-from-master", while in 1.7.9, it is
"\cygwin-c5e39b7a9d22bafb-tty0-from-master".
--
Yao (éå)