Request for help debugging screen problem

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Fri Feb 5 14:35:00 GMT 2010


On Fri, Feb 05, 2010 at 02:46:48PM +0100, Corinna Vinschen wrote:
>On Feb  5 10:42, Shaddy Baddah wrote:
>> Hi,
>> 
>> I'm trying to debug a problem with screen, rather than publish a bug
>> report. I can do that as well if someone requests it, no problem.
>> 
>> The issue I'm facing is with a read on the Windows named pipe
>> associated with a tty device. I note that in this bit of code:
>> 
>> http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygserver/transport_pipes.cc?annotate=1.12&cvsroot=src
>> 
>> 223: ssize_t
>> 224: transport_layer_pipes::read (void *const buf, const size_t len)
>> 225: {
>> 226:   // verbose: debug_printf ("reading from pipe %p", _hPipe);
>> 227:
>> 228:   assert (_hPipe);
>> 229:   assert (_hPipe != INVALID_HANDLE_VALUE);
>> 230:   assert (!_is_listening_endpoint);
>> 231:
>> 232:   DWORD count;
>> 233:   if (!ReadFile (_hPipe, buf, len, &count, NULL))
>> 234:     {
>> 235:       debug_printf ("error reading from pipe (%lu)", GetLastError ());
>> 236:       SET_ERRNO (EINVAL);      // FIXME?
>> 237:       return -1;
>> 238:     }
>> 239:
>> 240:   return count;
>> 241: }
>> 242:
>> 
>> before and after the ReadFile the error code can return a different
>> value. ie. a call to the following function, returns different
>> values:
>> 
>> ssize_t client_request::error_code() const;
>> 
>> I'm curious as to how this could be. Is there some callback function
>> registered via the Windows API that ReadFile calls at various points
>> in its execution? Or is another thread setting this value?
>> 
>> Any help would be greatly appreciated.
>
>Can yopu expolain this in more detail, please?  What error codes
>are returned, and how do you trigger the effect?

Also, unless you have CYGWIN=server set, this code should not be used
by the pty handler so I don't know why you're looking here.

cgf



More information about the Cygwin-developers mailing list