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