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: Corinna Vinschen <vinschen at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 25 Jul 2013 12:19:48 +0200
- 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> <51F0EA14 dot 1070900 at codesourcery dot com>
- Reply-to: gdb-patches at sourceware dot org
On Jul 25 17:04, Yao Qi wrote:
> 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".
Read the source code comments. The hex number is a per-installation
hash value which does not tell anything about the Cygwin version. The
earliest supported Cygwin version is 1.7.0, so the answer is "all of
them" for all practical purposes.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat