diff options
| author | Jason Molenda <jmolenda@apple.com> | 2014-03-09 21:17:08 +0000 |
|---|---|---|
| committer | Jason Molenda <jmolenda@apple.com> | 2014-03-09 21:17:08 +0000 |
| commit | 37e9b5ab38208d27d30309a41bc1f0328ccb4afa (patch) | |
| tree | c1462c856b8bf010b105e944145173b1c4e5dbb5 /lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h | |
| parent | fe95dc95b5c16997f15d59d216734aecdce0bb44 (diff) | |
| download | bcm5719-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.h | 19 |
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 |

