This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gdb pty problem [Was: emacs gud-interface is not updated after gdb command execution (maybe because of incomplete output from gdb)]


On 5/30/2016 4:02 PM, Ken Brown wrote:
On 5/26/2016 8:31 AM, Ken Brown wrote:
This looks like a bug I reported several years ago; it actually has
nothing to do with emacs:

  https://www.cygwin.com/ml/cygwin/2011-10/msg00445.html

It was fixed but then reappeared some months later:

  https://www.cygwin.com/ml/cygwin/2012-05/msg00049.html

It was fixed again but apparently is back.  The test case from the
original report still exhibits the problem.

I've tracked down the commits that fixed this bug in the past.  The first fix was

commit 31d2bedc585420092eb53895c5f5646651f13215
Author: Christopher Faylor <me@cgf.cx>
Date:   Sun Oct 23 19:01:47 2011 +0000

    * fhandler_tty.cc (fhandler_pty_slave::read): Use consistent way for testing
    ReadFile return.
    * pipe.cc (fhandler_pipe::create_selectable): Open the write side of the pipe
    in message-mode to force writing as "chunks".  Explain why.

The second was

commit fb9d631817cc2b5d83c2a6ff928851d201c992bf
Author: Christopher Faylor <me@cgf.cx>
Date:   Fri May 4 03:00:43 2012 +0000

    * DevNotes: Add entry cgf-000002.
    * fhandler_tty.cc (bytes_available): Revert to previous Oct-2011 behavior where
    a dummy buffer is used to determine how many bytes will be read.
    (fhandler_pty_master::ioctl): Correct coercion in assignment.

A few weeks later the code was simplified:

commit bd8afa5eb160b56715b805befe850a5ba2131d28
Author: Christopher Faylor <me@cgf.cx>
Date:   Wed May 16 01:56:41 2012 +0000

    * DevNotes: Add entry cgf-000008.
    * fhandler_tty.cc (bytes_available): Simplify by returning the number of bytes
    available in the message unless that is zero.

I've looked at the current code in the vicinity of these changes, and nothing jumps out at me as obviously breaking the previous fixes; but that doesn't mean much.

FWIW, if I take my original test case, as modified by cgf, and uncomment the line "sleep (1);", then the program finishes successfully. I don't know if that provides a clue.

For convenience, I'm attaching the modified test case.

Ken

Attachment: gdbstc.cc
Description: Text document

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]