diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 20:06:56 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 20:06:56 +0000 |
| commit | 7fed546d1996271dabc7cf71d4d033125c4da4ee (patch) | |
| tree | 2b6dc7dcb4a6380cb331aded15f5a81c0038e194 /source/Plugins/SystemRuntime | |
| parent | 9e6d35490a6542f9c97607f93c2ef8ca8e03cbcc (diff) | |
Notes
Diffstat (limited to 'source/Plugins/SystemRuntime')
| -rw-r--r-- | source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp | 24 | ||||
| -rw-r--r-- | source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h | 4 |
2 files changed, 20 insertions, 8 deletions
diff --git a/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp b/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp index b11a06760325..1097ef36960e 100644 --- a/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp +++ b/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp @@ -725,14 +725,26 @@ SystemRuntimeMacOSX::PopulateQueueList (lldb_private::QueueList &queue_list) for (ThreadSP thread_sp : m_process->Threads()) { - if (thread_sp->GetQueueID() != LLDB_INVALID_QUEUE_ID) + if (thread_sp->GetAssociatedWithLibdispatchQueue () != eLazyBoolNo) { - if (queue_list.FindQueueByID (thread_sp->GetQueueID()).get() == NULL) + if (thread_sp->GetQueueID() != LLDB_INVALID_QUEUE_ID) { - QueueSP queue_sp (new Queue(m_process->shared_from_this(), thread_sp->GetQueueID(), thread_sp->GetQueueName())); - queue_sp->SetKind (GetQueueKind (thread_sp->GetQueueLibdispatchQueueAddress())); - queue_sp->SetLibdispatchQueueAddress (thread_sp->GetQueueLibdispatchQueueAddress()); - queue_list.AddQueue (queue_sp); + if (queue_list.FindQueueByID (thread_sp->GetQueueID()).get() == NULL) + { + QueueSP queue_sp (new Queue(m_process->shared_from_this(), thread_sp->GetQueueID(), thread_sp->GetQueueName())); + if (thread_sp->ThreadHasQueueInformation ()) + { + queue_sp->SetKind (thread_sp->GetQueueKind ()); + queue_sp->SetLibdispatchQueueAddress (thread_sp->GetQueueLibdispatchQueueAddress()); + queue_list.AddQueue (queue_sp); + } + else + { + queue_sp->SetKind (GetQueueKind (thread_sp->GetQueueLibdispatchQueueAddress())); + queue_sp->SetLibdispatchQueueAddress (thread_sp->GetQueueLibdispatchQueueAddress()); + queue_list.AddQueue (queue_sp); + } + } } } } diff --git a/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h b/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h index 5976bed57cf6..8fe15fa4d8a5 100644 --- a/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h +++ b/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h @@ -104,8 +104,8 @@ public: void CompleteQueueItem(lldb_private::QueueItem *queue_item, lldb::addr_t item_ref) override; - virtual lldb::QueueKind - GetQueueKind (lldb::addr_t dispatch_queue_addr); + lldb::QueueKind + GetQueueKind (lldb::addr_t dispatch_queue_addr) override; void AddThreadExtendedInfoPacketHints(lldb_private::StructuredData::ObjectSP dict) override; |
