summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2013-11-11 05:20:44 +0000
committerJason Molenda <jmolenda@apple.com>2013-11-11 05:20:44 +0000
commit864f1cc065077c7de5028c62b5a6018e749791bf (patch)
treec7b5b9057421120061aef6f9172d4e37c03b96a6 /lldb/source/Target/Process.cpp
parent7a2f7904bf45ecc5c903389a6d6d4b7c16314621 (diff)
downloadbcm5719-llvm-864f1cc065077c7de5028c62b5a6018e749791bf.tar.gz
bcm5719-llvm-864f1cc065077c7de5028c62b5a6018e749791bf.zip
The Threads created when requesting extended backtraces need to be owned by
something; add a new ExtendedThreadList to Process where they can be retained for the duration of a public stop. <rdar://problem/15314068> llvm-svn: 194367
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 93edfdba407..1fe9ae9ca76 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -1023,6 +1023,7 @@ Process::Process(Target &target, Listener &listener) :
m_thread_mutex (Mutex::eMutexTypeRecursive),
m_thread_list_real (this),
m_thread_list (this),
+ m_extended_thread_list (this),
m_notifications (),
m_image_tokens (),
m_listener (listener),
@@ -1148,6 +1149,7 @@ Process::Finalize()
m_dyld_ap.reset();
m_thread_list_real.Destroy();
m_thread_list.Destroy();
+ m_extended_thread_list.Destroy();
std::vector<Notifications> empty_notifications;
m_notifications.swap(empty_notifications);
m_image_tokens.clear();
@@ -1592,6 +1594,8 @@ Process::UpdateThreadListIfNeeded ()
m_thread_list.Update (new_thread_list);
m_thread_list.SetStopID (stop_id);
}
+ // Clear any extended threads that we may have accumulated previously
+ m_extended_thread_list.Clear();
}
}
}
OpenPOWER on IntegriCloud