9#ifndef LLDB_TARGET_SYSTEMRUNTIME_H
10#define LLDB_TARGET_SYSTEMRUNTIME_H
A uniqued constant string class.
A collection class for Module objects.
A plug-in interface definition class for debugging a process.
std::shared_ptr< Object > ObjectSP
A plug-in interface definition class for system runtimes.
virtual void DidAttach()
Called after attaching to a process.
virtual void AddThreadExtendedInfoPacketHints(lldb_private::StructuredData::ObjectSP dict)
Add key-value pairs to the StructuredData dictionary object with information debugserver may need whe...
virtual lldb::ThreadSP GetExtendedBacktraceThread(lldb::ThreadSP thread, ConstString type)
Return a Thread which shows the origin of this thread's creation.
virtual std::string GetQueueNameFromThreadQAddress(lldb::addr_t dispatch_qaddr)
Get the queue name for a thread given a thread's dispatch_qaddr.
virtual lldb::addr_t GetLibdispatchQueueAddressFromThreadQAddress(lldb::addr_t dispatch_qaddr)
Get the libdispatch_queue_t address for the queue given the thread's dispatch_qaddr.
virtual void Detach()
Called before detaching from a process.
virtual void PopulateQueueList(lldb_private::QueueList &queue_list)
Populate the Process' QueueList with libdispatch / GCD queues that exist.
SystemRuntime(const SystemRuntime &)=delete
void ModulesDidLoad(const ModuleList &module_list) override
Called when modules have been loaded in the process.
const SystemRuntime & operator=(const SystemRuntime &)=delete
virtual lldb::ThreadSP GetExtendedBacktraceForQueueItem(lldb::QueueItemSP queue_item_sp, ConstString type)
Get the extended backtrace thread for a QueueItem.
virtual void CompleteQueueItem(lldb_private::QueueItem *queue_item, lldb::addr_t item_ref)
Complete the fields in a QueueItem.
virtual const std::vector< ConstString > & GetExtendedBacktraceTypes()
Return a list of thread origin extended backtraces that may be available.
std::vector< ConstString > m_types
virtual void DidLaunch()
Called after launching a process.
virtual lldb::queue_id_t GetQueueIDFromThreadQAddress(lldb::addr_t dispatch_qaddr)
Get the QueueID for the libdispatch queue given the thread's dispatch_qaddr.
~SystemRuntime() override
Destructor.
virtual lldb::QueueKind GetQueueKind(lldb::addr_t dispatch_qaddr)
Retrieve the Queue kind for the queue at a thread's dispatch_qaddr.
static SystemRuntime * FindPlugin(Process *process)
Find a system runtime plugin for a given process.
virtual bool SafeToCallFunctionsOnThisThread(lldb::ThreadSP thread_sp)
Determine whether it is safe to run an expression on a given thread.
virtual void PopulatePendingItemsForQueue(lldb_private::Queue *queue)
Get the pending work items for a libdispatch Queue.
#define LLDB_INVALID_QUEUE_ID
#define LLDB_INVALID_ADDRESS
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::QueueItem > QueueItemSP