New implementation of pseudo console support (experimental)

Corinna Vinschen corinna-cygwin@cygwin.com
Tue May 26 08:33:20 GMT 2020


On May 26 10:00, Takashi Yano via Cygwin-developers wrote:
> On Mon, 25 May 2020 17:22:04 +0200
> Corinna Vinschen wrote:
> > Works fine for me, but I have only a limited test scenario.
> 
> Thank you very much for testing.
> 
> > In terms of the remaining disadvantages:
> > 
> > 3) The cygwin program which call console API directly does not work.
> > 
> >   I don't see a problem here.
> 
> If the code below is compiled with cygwin gcc, it does not work.
> 
> #include <windows.h>
> int main()
> {
>   WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "AAA\r\n", 5, NULL, 0);
>   return 0;
> }
> 
> However, this does not work also in cygwin 3.0.7, so it does not
> matter for the app which works in cygwin 3.0.7.

Cygwin apps are not supposed to use these functions anyway.  If Thomas
and mintty are fine with that, I'm totally relaxed.

> > 4) The apps which use console API cannot be debugged with gdb.
> > 
> >   Do you mean Cygwin apps or native apps?  I assume native apps
> >   because of disadvantage 3...
> 
> I mean native apps. If the process is executed by gdb, pseudo
> console is not activated since gdb use CreateProcess() rather
> than exec().

Ah, that makes sense.

> >   Does that mean you can't even debug by attaching (via PID)?
> 
> Attaching gdb to native apps, in which pseudo console is
> already activated, should work.

Great.

> > 5) Type ahead key inputs are discarded while native console app is
> >    executed.
> > 
> >   Hmm, not muchg of a problem, I think.
> > 
> > 7) Code page cannot be changed by chcp.com.
> > 
> >   I fail to see the exact drawback here.  I don't think a lot of users
> >   use chcp, but of course I could be wrong.  I'd also be curious why
> >   chcp doesn't work.
> 
> Please note that pseudo console is created for each native 
> console app in this implementation. Acctually, chcp works
> itself and changes code page of its own pseudo console.
> However, since pseudo console is recreated for another
> process, which does not inherit the code page.

Thanks, now I get it.  Not a show-stopper.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer


More information about the Cygwin-developers mailing list