Daniel Jacobowitz wrote: > On Wed, Jan 31, 2007 at 05:34:21PM +0300, Vladimir Prus wrote: >> Implementing for MinGW required modifying libiberty so that >> it can catch stderr to a pipe. Here's a patch for gdb that >> relies on the libiberty patch. Does this sound OK >> provided libiberty patch is approved? > > Do we automatically get a non-blocking pipe on mingw, or do we have to > set it ourselves? We have to set it ourself, unfortunately. I had one test case working fine, but got gdb hanging on some other. The attached patch works around the blocking issues, and more extensively tested. OK? - Volodya Pass stderr of program run with "target remote |" via gdb_stderr. * serial.c (serial_open): Set error_fd to -1. * serial.h (struct serial): New field error_fd. * ser-pipe.c (pipe_open): Create another pair of sockets. Pass stderr to gdb. * ser-mingw.c (pipe_windows_open): Pass PEX_STDERR_TO_PIPE to pex_run. Initialize sd->error_fd. * ser-base.c (generic_readchar): Check if there's anything in stderr channel and route that to gdb_stderr.