>> The change that's been a reliable workaround for me is a usleep(100) >> at the end of Process:PrivateResume(). I'll see if that's still the >> case and also try the other patch you posted tomorrow.
I tried just now, and did not observe overlapping prompts with any of: 1-liner change + usleep(100) in PrivateResume the larger change larger change + usleep(100) (But it seems the problem was made worse by system load, and so I'm not completely confident that I've recreated the same conditions under which I reproduced it on top of tree yesterday.) On 7 April 2015 at 13:58, Greg Clayton <gclay...@apple.com> wrote: > Yes this m_iohandler_sync is essentially implementing a "sleep(2)" as the > overall fix. It is coded in a much more complex way, but that is the way it > works out on MacOSX at least. > > I will take look at this later today to come up with a real fix to hopefully > fix this once and for all. > > The issue seems to be we have 3 threads: > 1 - main thread running command interpreter waiting for user input > 2 - debugger event handling thread that handles all events (run/stop/stdio > from process) > 3 - process private event handling thread > > I believe that the issue we are running into is we get a "stopped" on thread > 2 and we grab stdio and also display the thread stop info (thread list and > where we stopped) asynchronously while thread 1 is in the process of > displaying the "(lldb) " prompt again. We really need any async text to be > supplied to the IOHandler stack for display so that it can correctly > coordinate the output. I believe right now thread 2 just prints stuff when it > wants to and then asks the IOHandler to refresh the top IOHandler after it > does the display, but I need to look at this again to make sure this is what > is happening. Right. When we last discussed this I added some specific logging[1] where IOHandlers were pushed/popped (link below) that seems consistent with this. http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140303/010621.html _______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev