<div dir="ltr">Would a log file help?  Maybe this way you'd be able to see what order things are actually happening in.  If so, let me know which log channels you want me to turn on and I can upload something.<br></div><br><div class="gmail_quote">On Tue, Apr 7, 2015 at 11:00 AM Greg Clayton <<a href="mailto:gclayton@apple.com">gclayton@apple.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<br>
<br>
I will take look at this later today to come up with a real fix to hopefully fix this once and for all.<br>
<br>
The issue seems to be we have 3 threads:<br>
1 - main thread running command interpreter waiting for user input<br>
2 - debugger event handling thread that handles all events (run/stop/stdio from process)<br>
3 - process private event handling thread<br>
<br>
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.<br>
<br>
Greg<br>
<br>
> On Apr 6, 2015, at 6:30 PM, Ed Maste <<a href="mailto:emaste@freebsd.org" target="_blank">emaste@freebsd.org</a>> wrote:<br>
><br>
> On 6 April 2015 at 17:39, Greg Clayton <<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>> wrote:<br>
>> So do you still have problems with the prompt coming out at the wrong time or getting interspersed on FreeBSD with top of tree? It is just made worse by this patch?<br>
><br>
> Yes, I get the (lldb) prompt coming out at the wrong time (in relation<br>
> to the source listing or target I/O) on top of tree. It's at best<br>
> unchanged with the (one-liner) patch -- because it seems to vary with<br>
> the overall system load it's hard to say for certain. But I get<br>
> interspersed prompts on top of tree with or without the patch.<br>
><br>
> The change that's been a reliable workaround for me is a usleep(100)<br>
> at the end of Process:PrivateResume(). I'll see if that's still the<br>
> case and also try the other patch you posted tomorrow.<br>
<br>
<br>
______________________________<u></u>_________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/lldb-dev</a><br>
</blockquote></div>