Hi, been seeing an issue very frequently while single-stepping a remote 
multithreaded iOS target.  Host is OS X. The crash is in 
ProcessGDBRemote::WillPublicStop, close to NULL.  I downloaded the latest 
source from git and compiled a debug version.  Same scenario crashed in 
assertion in GetItemAtIndex, idx < GetSize().  The issue appears to be a race 
between (ProcessGDBRemote.cpp):

here>      const size_t n = thread_infos->GetSize();
      for (size_t i = 0; i < n; ++i) {
here>        StructuredData::Dictionary *thread_dict =
            thread_infos->GetItemAtIndex(i)->GetAsDictionary();


For testing, I added:
std::lock_guard<std::recursive_mutex> guard(m_thread_list_real.GetMutex());

To first line of ProcessGDBRemote::WillPublicStop.  Seemed to resolve my issue, 
but have not tested extensively.

Best regards,

Braden
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to