<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi,<div><br></div><div>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.</div><div><br></div><div>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:</div><div><br></div><div><div><font face="Courier New, sans-serif" size="2">    // Loop over threads</font></div><div><font face="Courier New, sans-serif" size="2">    int numThreads = m_Process.GetNumThreads();</font></div><div><font face="Courier New, sans-serif" size="2">    for (int threadIndex = 0; threadIndex < numThreads; ++threadIndex)</font></div><div><font face="Courier New, sans-serif" size="2">    {</font></div><div><font face="Courier New, sans-serif" size="2">        // Inspect the thread state</font></div><div><font face="Courier New, sans-serif" size="2">        sbThread = m_Process.GetThreadAtIndex(threadIndex);</font></div><div><font face="Courier New, sans-serif" size="2">        stopReason = sbThread.GetStopReason();</font></div></div><div><font face="Courier New, sans-serif" size="2">...</font></div><div><br></div><div><br></div><div>Well, this loop turns out to be a bottleneck. </div><div><br></div><div>So, is there any way to find all the stopped threads without iterating over the whole world?</div><div><br></div><div>Thanks,</div><div>Eugene</div><div><br></div><div><br></div>                                     </div></body>
</html>