diff options
author | Greg Clayton <gclayton@apple.com> | 2013-04-12 20:07:46 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-04-12 20:07:46 +0000 |
commit | b3ae87617437c5850003cd7ab35e0b3581d2b7da (patch) | |
tree | 432a368c3ea470e6bb546276e059f19aa3c491dc /lldb/source/Target/Process.cpp | |
parent | 7181ed33461e3ee0a3fd4d9f8ec16b708d34ab2f (diff) | |
download | bcm5719-llvm-b3ae87617437c5850003cd7ab35e0b3581d2b7da.tar.gz bcm5719-llvm-b3ae87617437c5850003cd7ab35e0b3581d2b7da.zip |
<rdar://problem/13491977>
Made some fixes to the OperatingSystemPython class:
- If any thread dictionary contains any "core=N" key/value pairs then the threads obtained from the lldb_private::Process itself will be placed inside the ThreadMemory threads and will be used to get the information for a thread.
- Cleaned up all the places where a thread inside a thread was causing problems
llvm-svn: 179405
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index d60930ecb8d..6a394420a00 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1523,7 +1523,16 @@ Process::UpdateThreadListIfNeeded () { OperatingSystem *os = GetOperatingSystem (); if (os) + { + // Clear any old backing threads where memory threads might have been + // backed by actual threads from the lldb_private::Process subclass + size_t num_old_threads = m_thread_list.GetSize(false); + for (size_t i=0; i<num_old_threads; ++i) + m_thread_list.GetThreadAtIndex(i, false)->ClearBackingThread(); + + // Now let the OperatingSystem plug-in update the thread list os->UpdateThreadList (m_thread_list, new_thread_list); + } m_thread_list.Update (new_thread_list); m_thread_list.SetStopID (stop_id); } |