summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2014-03-09 21:17:08 +0000
committerJason Molenda <jmolenda@apple.com>2014-03-09 21:17:08 +0000
commit37e9b5ab38208d27d30309a41bc1f0328ccb4afa (patch)
treec1462c856b8bf010b105e944145173b1c4e5dbb5 /lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
parentfe95dc95b5c16997f15d59d216734aecdce0bb44 (diff)
downloadbcm5719-llvm-37e9b5ab38208d27d30309a41bc1f0328ccb4afa.tar.gz
bcm5719-llvm-37e9b5ab38208d27d30309a41bc1f0328ccb4afa.zip
libBacktraceRecording __introspection_dispatch_queue_get_pending_items is
changing the data it returns; this change accepts either the old format or the new format. It doesn't yet benefit from the new format's additions - but I need to get this checked in so we aren't rev-locked. Also add a missing .i entry for SBQueue::GetNumRunningItems() missing from the last checkin. <rdar://problem/16272115> llvm-svn: 203421
Diffstat (limited to 'lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h')
-rw-r--r--lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h b/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
index a308844d0e6..c20f19c3244 100644
--- a/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
+++ b/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
@@ -188,6 +188,23 @@ private:
}
};
+
+ // The libBacktraceRecording function __introspection_dispatch_queue_get_pending_items has
+ // two forms. It can either return a simple array of item_refs (void *) size or it can return
+ // a header with uint32_t version, a uint32_t size of item, and then an array of item_refs (void*)
+ // and code addresses (void*) for all the pending blocks.
+
+ struct ItemRefAndCodeAddress {
+ lldb::addr_t item_ref;
+ lldb::addr_t code_address;
+ };
+
+ struct PendingItemsForQueue {
+ bool new_style; // new-style means both item_refs and code_addresses avail
+ // old-style means only item_refs is filled in
+ std::vector<ItemRefAndCodeAddress> item_refs_and_code_addresses;
+ };
+
bool
BacktraceRecordingHeadersInitialized ();
@@ -197,7 +214,7 @@ private:
void
ReadLibdispatchOffsets ();
- std::vector<lldb::addr_t>
+ PendingItemsForQueue
GetPendingItemRefsForQueue (lldb::addr_t queue);
ItemInfo
OpenPOWER on IntegriCloud