[lldb-dev] Process::SyncIOHandler(), everyone please try out the following patch

Greg Clayton gclayton at apple.com
Tue Apr 7 13:06:44 PDT 2015


On Apr 7, 2015, at 11:26 AM, Zachary Turner <zturner at google.com> wrote:
> 
> 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.

I think just looking at what is happening with the event thread and finding out how to make sure that any async text is displayed through the command interpreter (IOHandler stack) and we should easily be able to control it. The command interpreter is what is displaying the user interface so it is logical that is should control the output of async text if it already isn't.

The sleep() and usleep() solutions help us avoid the "continue" that immediately stops, but when the stop takes a bit longer we can easily run into issues.

We can probably reproduce a lot of these issues by stepping over usleep() statements:


int main(...)
{
    for (int i=1000; i<2000000; i+= 1000)
        usleep(i);
}

This will vary how quickly we get the run/stop events and should start to show problems.



More information about the lldb-dev mailing list