LLDB mainline
|
#include <AppleGetThreadItemInfoHandler.h>
Classes | |
struct | GetThreadItemInfoReturnInfo |
Public Member Functions | |
AppleGetThreadItemInfoHandler (lldb_private::Process *process) | |
~AppleGetThreadItemInfoHandler () | |
GetThreadItemInfoReturnInfo | GetThreadItemInfo (Thread &thread, lldb::tid_t thread_id, lldb::addr_t page_to_free, uint64_t page_to_free_size, lldb_private::Status &error) |
Get the information about a work item by calling __introspection_dispatch_thread_get_item_info. | |
void | Detach () |
Private Member Functions | |
lldb::addr_t | SetupGetThreadItemInfoFunction (Thread &thread, ValueList &get_thread_item_info_arglist) |
Private Attributes | |
lldb_private::Process * | m_process |
std::unique_ptr< UtilityFunction > | m_get_thread_item_info_impl_code |
std::mutex | m_get_thread_item_info_function_mutex |
lldb::addr_t | m_get_thread_item_info_return_buffer_addr |
std::mutex | m_get_thread_item_info_retbuffer_mutex |
Static Private Attributes | |
static const char * | g_get_thread_item_info_function_name |
static const char * | g_get_thread_item_info_function_code |
Definition at line 43 of file AppleGetThreadItemInfoHandler.h.
AppleGetThreadItemInfoHandler::AppleGetThreadItemInfoHandler | ( | lldb_private::Process * | process | ) |
Definition at line 105 of file AppleGetThreadItemInfoHandler.cpp.
|
default |
void AppleGetThreadItemInfoHandler::Detach | ( | ) |
Definition at line 113 of file AppleGetThreadItemInfoHandler.cpp.
References lldb_private::Process::DeallocateMemory(), lldb_private::Process::IsAlive(), LLDB_INVALID_ADDRESS, m_get_thread_item_info_retbuffer_mutex, m_get_thread_item_info_return_buffer_addr, and m_process.
Referenced by SystemRuntimeMacOSX::Detach().
AppleGetThreadItemInfoHandler::GetThreadItemInfoReturnInfo AppleGetThreadItemInfoHandler::GetThreadItemInfo | ( | Thread & | thread, |
lldb::tid_t | thread_id, | ||
lldb::addr_t | page_to_free, | ||
uint64_t | page_to_free_size, | ||
lldb_private::Status & | error | ||
) |
Get the information about a work item by calling __introspection_dispatch_thread_get_item_info.
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_id | The thread to get the extended backtrace for. |
[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 AppleGetThreadItemInfoHandler.cpp.
References lldb_private::Thread::CalculateExecutionContext(), lldb_private::Thread::CalculateProcess(), lldb_private::Thread::CalculateTarget(), 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_private::AppleGetThreadItemInfoHandler::GetThreadItemInfoReturnInfo::item_buffer_ptr, lldb_private::AppleGetThreadItemInfoHandler::GetThreadItemInfoReturnInfo::item_buffer_size, LLDB_INVALID_ADDRESS, LLDB_LOGF, m_get_thread_item_info_impl_code, m_get_thread_item_info_retbuffer_mutex, m_get_thread_item_info_return_buffer_addr, m_process, lldb_private::ValueList::PushValue(), 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(), SetupGetThreadItemInfoFunction(), lldb_private::Value::SetValueType(), and lldb_private::SystemRuntime.
Referenced by SystemRuntimeMacOSX::GetExtendedBacktraceThread().
|
private |
Definition at line 138 of file AppleGetThreadItemInfoHandler.cpp.
References lldb_private::DiagnosticManager::Clear(), lldb_private::Target::CreateUtilityFunction(), lldb_private::DiagnosticManager::Dump(), lldb::eBasicTypeVoid, lldb::eLanguageTypeC, error(), g_get_thread_item_info_function_code, g_get_thread_item_info_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_thread_item_info_function_mutex, m_get_thread_item_info_impl_code, lldb_private::SystemRuntime, and lldb_private::FunctionCaller::WriteFunctionArguments().
Referenced by GetThreadItemInfo().
|
staticprivate |
Definition at line 98 of file AppleGetThreadItemInfoHandler.h.
Referenced by SetupGetThreadItemInfoFunction().
|
staticprivate |
Definition at line 97 of file AppleGetThreadItemInfoHandler.h.
Referenced by SetupGetThreadItemInfoFunction().
|
private |
Definition at line 102 of file AppleGetThreadItemInfoHandler.h.
Referenced by SetupGetThreadItemInfoFunction().
|
private |
Definition at line 101 of file AppleGetThreadItemInfoHandler.h.
Referenced by GetThreadItemInfo(), and SetupGetThreadItemInfoFunction().
|
private |
Definition at line 105 of file AppleGetThreadItemInfoHandler.h.
Referenced by Detach(), and GetThreadItemInfo().
|
private |
Definition at line 104 of file AppleGetThreadItemInfoHandler.h.
Referenced by Detach(), and GetThreadItemInfo().
|
private |
Definition at line 100 of file AppleGetThreadItemInfoHandler.h.
Referenced by Detach(), and GetThreadItemInfo().