summaryrefslogtreecommitdiff
path: root/source/Plugins/SystemRuntime/MacOSX
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/SystemRuntime/MacOSX')
-rw-r--r--source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp24
-rw-r--r--source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h4
2 files changed, 20 insertions, 8 deletions
diff --git a/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp b/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
index b11a06760325b..1097ef36960e5 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 5976bed57cf61..8fe15fa4d8a5c 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;