>> 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

Reply via email to