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

Zachary Turner zturner at google.com
Tue Apr 7 11:26:38 PDT 2015


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.

On Tue, Apr 7, 2015 at 11:00 AM Greg Clayton <gclayton at 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.
>
> Greg
>
> > On Apr 6, 2015, at 6:30 PM, Ed Maste <emaste at freebsd.org> wrote:
> >
> > On 6 April 2015 at 17:39, Greg Clayton <gclayton at apple.com> wrote:
> >> 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?
> >
> > Yes, I get the (lldb) prompt coming out at the wrong time (in relation
> > to the source listing or target I/O) on top of tree. It's at best
> > unchanged with the (one-liner) patch -- because it seems to vary with
> > the overall system load it's hard to say for certain. But I get
> > interspersed prompts on top of tree with or without the patch.
> >
> > 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.
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150407/b4202065/attachment.html>


More information about the lldb-dev mailing list