[lldb-dev] How to enumerate stopped threads in C++ API?

Eugene Birukov via lldb-dev lldb-dev at lists.llvm.org
Thu Mar 3 09:54:16 PST 2016

I am working on a custom debugger on Linux and I am using LLDB C++ API for that. So far, from the functionality point of view the life is good, but I am running into severe performance issue.
The problem is that the target application has literally hundreds of threads, and when the target process stops, I need to identify all the threads that have non-trivial stop reason. So, I am doing something like that:
    // Loop over threads    int numThreads = m_Process.GetNumThreads();    for (int threadIndex = 0; threadIndex < numThreads; ++threadIndex)    {        // Inspect the thread state        sbThread = m_Process.GetThreadAtIndex(threadIndex);        stopReason = sbThread.GetStopReason();...

Well, this loop turns out to be a bottleneck. 
So, is there any way to find all the stopped threads without iterating over the whole world?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160303/262eea6f/attachment-0001.html>

More information about the lldb-dev mailing list