LLDB mainline
|
#include <AppleGetQueuesHandler.h>
Classes | |
struct | GetQueuesReturnInfo |
Public Member Functions | |
AppleGetQueuesHandler (lldb_private::Process *process) | |
~AppleGetQueuesHandler () | |
GetQueuesReturnInfo | GetCurrentQueues (Thread &thread, lldb::addr_t page_to_free, uint64_t page_to_free_size, lldb_private::Status &error) |
Get the list of queues that exist (with any active or pending items) via a call to introspection_get_dispatch_queues(). | |
void | Detach () |
Private Member Functions | |
lldb::addr_t | SetupGetQueuesFunction (Thread &thread, ValueList &get_queues_arglist) |
Private Attributes | |
lldb_private::Process * | m_process |
std::unique_ptr< UtilityFunction > | m_get_queues_impl_code_up |
std::mutex | m_get_queues_function_mutex |
lldb::addr_t | m_get_queues_return_buffer_addr |
std::mutex | m_get_queues_retbuffer_mutex |
Static Private Attributes | |
static const char * | g_get_current_queues_function_name |
static const char * | g_get_current_queues_function_code |
Definition at line 41 of file AppleGetQueuesHandler.h.
AppleGetQueuesHandler::AppleGetQueuesHandler | ( | lldb_private::Process * | process | ) |
Definition at line 97 of file AppleGetQueuesHandler.cpp.
|
default |
void AppleGetQueuesHandler::Detach | ( | ) |
Definition at line 105 of file AppleGetQueuesHandler.cpp.
References lldb_private::Process::DeallocateMemory(), lldb_private::Process::IsAlive(), LLDB_INVALID_ADDRESS, m_get_queues_retbuffer_mutex, m_get_queues_return_buffer_addr, and m_process.
Referenced by SystemRuntimeMacOSX::Detach().
AppleGetQueuesHandler::GetQueuesReturnInfo AppleGetQueuesHandler::GetCurrentQueues | ( | Thread & | thread, |
lldb::addr_t | page_to_free, | ||
uint64_t | page_to_free_size, | ||
lldb_private::Status & | error | ||
) |
Get the list of queues that exist (with any active or pending items) via a call to introspection_get_dispatch_queues().
If there's a page of memory that needs to be freed, pass in the address and size and it will be freed before getting the list of queues.
[in] | thread | The thread to run this plan on. |
[in] | page_to_free | An address of an inferior process vm page that needs to be deallocated, LLDB_INVALID_ADDRESS if this is not needed. |
[in] | page_to_free_size | The size of the vm page that needs to be deallocated if an address was passed in to page_to_free. |
[out] | error | This object will be updated with the error status / error string from any failures encountered. |
Definition at line 218 of file AppleGetQueuesHandler.cpp.
References lldb_private::Thread::CalculateExecutionContext(), lldb_private::Thread::CalculateProcess(), lldb_private::Thread::CalculateTarget(), lldb_private::AppleGetQueuesHandler::GetQueuesReturnInfo::count, lldb::eBasicTypeInt, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeVoid, lldb::eExpressionCompleted, error(), lldb_private::FunctionCaller::ExecuteFunction(), lldb_private::ScratchTypeSystemClang::GetForTarget(), lldb_private::UserID::GetID(), lldb_private::GetLog(), lldb_private::CompilerType::GetPointerType(), lldb_private::Value::GetScalar(), lldb_private::Thread::GetStackFrameAtIndex(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_get_queues_impl_code_up, m_get_queues_retbuffer_mutex, m_get_queues_return_buffer_addr, m_process, lldb_private::ValueList::PushValue(), lldb_private::AppleGetQueuesHandler::GetQueuesReturnInfo::queues_buffer_ptr, lldb_private::AppleGetQueuesHandler::GetQueuesReturnInfo::queues_buffer_size, lldb_private::Process::ReadUnsignedIntegerFromMemory(), lldb_private::Thread::SafeToCallFunctions(), lldb_private::Value::Scalar, lldb_private::Value::SetCompilerType(), lldb_private::EvaluateExpressionOptions::SetIgnoreBreakpoints(), lldb_private::EvaluateExpressionOptions::SetIsForUtilityExpr(), lldb_private::EvaluateExpressionOptions::SetStopOthers(), lldb_private::EvaluateExpressionOptions::SetTimeout(), lldb_private::EvaluateExpressionOptions::SetTryAllThreads(), lldb_private::EvaluateExpressionOptions::SetUnwindOnError(), SetupGetQueuesFunction(), lldb_private::Value::SetValueType(), and lldb_private::SystemRuntime.
Referenced by SystemRuntimeMacOSX::PopulateQueueList().
|
private |
Definition at line 143 of file AppleGetQueuesHandler.cpp.
References lldb_private::DiagnosticManager::Clear(), lldb_private::Target::CreateUtilityFunction(), lldb_private::DiagnosticManager::Dump(), lldb::eBasicTypeVoid, lldb::eLanguageTypeC, error(), g_get_current_queues_function_code, g_get_current_queues_function_name, lldb_private::ScratchTypeSystemClang::GetForTarget(), lldb_private::GetLog(), lldb_private::CompilerType::GetPointerType(), lldb_private::Thread::GetProcess(), lldb_private::ExecutionContext::GetTargetRef(), LLDB_INVALID_ADDRESS, LLDB_LOG_ERROR, LLDB_LOGF, m_get_queues_function_mutex, m_get_queues_impl_code_up, lldb_private::SystemRuntime, and lldb_private::FunctionCaller::WriteFunctionArguments().
Referenced by GetCurrentQueues().
|
staticprivate |
Definition at line 96 of file AppleGetQueuesHandler.h.
Referenced by SetupGetQueuesFunction().
|
staticprivate |
Definition at line 95 of file AppleGetQueuesHandler.h.
Referenced by SetupGetQueuesFunction().
|
private |
Definition at line 100 of file AppleGetQueuesHandler.h.
Referenced by SetupGetQueuesFunction().
|
private |
Definition at line 99 of file AppleGetQueuesHandler.h.
Referenced by GetCurrentQueues(), and SetupGetQueuesFunction().
|
private |
Definition at line 103 of file AppleGetQueuesHandler.h.
Referenced by Detach(), and GetCurrentQueues().
|
private |
Definition at line 102 of file AppleGetQueuesHandler.h.
Referenced by Detach(), and GetCurrentQueues().
|
private |
Definition at line 98 of file AppleGetQueuesHandler.h.
Referenced by Detach(), and GetCurrentQueues().