[lldb-dev] Listening for thread create/destroy events in python LLDB

Jeffrey Tan jeffrey.fudan at gmail.com
Sat Aug 1 13:33:45 PDT 2015

Came from a Windows world thought this is trivial to do. Thanks for the

On Fri, Jul 31, 2015 at 4:34 PM, Jim Ingham <jingham at apple.com> wrote:

> lldb doesn't attempt to generate thread creation & destruction events at
> present.  If it did there would be a "threadCreated" event on the process,
> but as you see there isn't...
> There was some discussion about this a little while ago on the list.
> IMHBSEO the debugger should interfere with the running of a program as
> little as possible when the target is just running flat out.  So I wouldn't
> want lldb to watch thread creation and destruction by default, since you
> will end up starting and stopping the target much more often for
> information that in general you don't want to see.
> But it would be fine to add a setting that you could turn on in lldb to
> try to catch thread create/destroy. For extra credit, you could flip this
> on when somebody signs up for the thread creation events we would vend.
> Anyway, IIUC gathering these events would be easy to do on Linux, since
> you already have to be notified of new thread creation so you can attach to
> them.
> On OS X it would be trickier.  There is no kernel level notification of
> thread creation or destruction.  You could get thread creation by breaking
> on the couple of functions OS X always uses to start up new threads.
> Getting destruction would be trickier since you'd have put a breakpoint in
> the thread create function on the return from the thread body function.
> That would probably be easy to tell by eyeballing the function's
> disassembly, but might be harder to determine programmatically.
> Feel free to file a bug or even better provide a patch if this is
> something you really need.
> Jim
> > On Jul 31, 2015, at 3:13 PM, Jeffrey Tan <jeffrey.fudan at gmail.com>
> wrote:
> >
> > How to receive thread create/destroy events from LLDB? I did not find a
> broadcast bit from SBTarget or SBProcess or SBThread. I have enabled both
> SBProcess.eBroadcastBitStateChanged and
> SBTarget.eBroadcastBitBreakpointChanged, but still did not retrieve any
> thread create/destroy event via SBThread.EventIsThreadEvent().
> >
> > I know I can query for all threads while process is paused but thread
> can be create/destroy in run mode so it is important/useful for debugger
> client to receive this kind of notification.
> > _______________________________________________
> > 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/20150801/58cd15d7/attachment.html>

More information about the lldb-dev mailing list