LLDB mainline
|
Classes | |
struct | VTableDescriptor |
class | VTableRegion |
Public Types | |
enum | VTableFlags { eOBJC_TRAMPOLINE_MESSAGE = (1 << 0) , eOBJC_TRAMPOLINE_STRET = (1 << 1) , eOBJC_TRAMPOLINE_VTABLE = (1 << 2) } |
Public Member Functions | |
AppleObjCVTables (const lldb::ProcessSP &process_sp, const lldb::ModuleSP &objc_module_sp) | |
~AppleObjCVTables () | |
bool | InitializeVTableSymbols () |
bool | ReadRegions () |
bool | ReadRegions (lldb::addr_t region_addr) |
bool | IsAddressInVTables (lldb::addr_t addr, uint32_t &flags) |
lldb::ProcessSP | GetProcessSP () |
Static Public Member Functions | |
static bool | RefreshTrampolines (void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id) |
Private Types | |
typedef std::vector< VTableRegion > | region_collection |
Private Attributes | |
lldb::ProcessWP | m_process_wp |
lldb::addr_t | m_trampoline_header |
lldb::break_id_t | m_trampolines_changed_bp_id |
region_collection | m_regions |
lldb::ModuleSP | m_objc_module_sp |
Definition at line 69 of file AppleObjCTrampolineHandler.h.
|
private |
Definition at line 140 of file AppleObjCTrampolineHandler.h.
Enumerator | |
---|---|
eOBJC_TRAMPOLINE_MESSAGE | |
eOBJC_TRAMPOLINE_STRET | |
eOBJC_TRAMPOLINE_VTABLE |
Definition at line 72 of file AppleObjCTrampolineHandler.h.
AppleObjCTrampolineHandler::AppleObjCVTables::AppleObjCVTables | ( | const lldb::ProcessSP & | process_sp, |
const lldb::ModuleSP & | objc_module_sp ) |
Definition at line 329 of file AppleObjCTrampolineHandler.cpp.
References LLDB_INVALID_ADDRESS, LLDB_INVALID_BREAK_ID, m_objc_module_sp, m_process_wp, m_trampoline_header, and m_trampolines_changed_bp_id.
Referenced by RefreshTrampolines(), lldb_private::AppleObjCTrampolineHandler::AppleObjCVTables::VTableRegion::VTableRegion(), and lldb_private::AppleObjCTrampolineHandler::AppleObjCVTables::VTableRegion::VTableRegion().
AppleObjCTrampolineHandler::AppleObjCVTables::~AppleObjCVTables | ( | ) |
Definition at line 338 of file AppleObjCTrampolineHandler.cpp.
References GetProcessSP(), LLDB_INVALID_BREAK_ID, and m_trampolines_changed_bp_id.
|
inline |
Definition at line 136 of file AppleObjCTrampolineHandler.h.
References m_process_wp.
Referenced by InitializeVTableSymbols(), ReadRegions(), ReadRegions(), and ~AppleObjCVTables().
bool AppleObjCTrampolineHandler::AppleObjCVTables::InitializeVTableSymbols | ( | ) |
Definition at line 346 of file AppleObjCTrampolineHandler.cpp.
References lldb_private::Target::CreateBreakpoint(), lldb::eSymbolTypeCode, lldb::eSymbolTypeData, lldb_private::ObjCLanguageRuntime::Get(), lldb_private::Symbol::GetAddress(), lldb_private::Target::GetImages(), lldb_private::Symbol::GetLoadAddress(), lldb_private::Address::GetOpcodeLoadAddress(), GetProcessSP(), lldb_private::Address::IsValid(), LLDB_INVALID_ADDRESS, m_objc_module_sp, m_trampoline_header, m_trampolines_changed_bp_id, lldb_private::ModuleList::Modules(), and RefreshTrampolines().
Referenced by ReadRegions(), ReadRegions(), and RefreshTrampolines().
bool AppleObjCTrampolineHandler::AppleObjCVTables::IsAddressInVTables | ( | lldb::addr_t | addr, |
uint32_t & | flags ) |
Definition at line 502 of file AppleObjCTrampolineHandler.cpp.
References m_regions.
bool AppleObjCTrampolineHandler::AppleObjCVTables::ReadRegions | ( | ) |
Definition at line 453 of file AppleObjCTrampolineHandler.cpp.
References error(), GetProcessSP(), InitializeVTableSymbols(), m_regions, m_trampoline_header, and ReadRegions().
Referenced by ReadRegions(), and RefreshTrampolines().
bool AppleObjCTrampolineHandler::AppleObjCVTables::ReadRegions | ( | lldb::addr_t | region_addr | ) |
Definition at line 471 of file AppleObjCTrampolineHandler.cpp.
References lldb_private::StreamString::GetData(), lldb_private::GetLog(), GetProcessSP(), InitializeVTableSymbols(), LLDB_LOGF, m_regions, and lldb_private::Step.
|
static |
Definition at line 405 of file AppleObjCTrampolineHandler.cpp.
References AppleObjCVTables(), lldb::eBasicTypeVoid, error(), lldb_private::StoppointCallbackContext::exe_ctx_ref, lldb_private::Process::GetABI(), lldb_private::DataExtractor::GetAddress(), lldb_private::ABI::GetArgumentValues(), lldb_private::ScratchTypeSystemClang::GetForTarget(), lldb_private::CompilerType::GetPointerType(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::Process::GetTarget(), lldb_private::ExecutionContext::GetThreadRef(), lldb_private::Value::GetValueAsData(), lldb_private::ValueList::GetValueAtIndex(), InitializeVTableSymbols(), lldb_private::ValueList::PushValue(), ReadRegions(), lldb_private::Value::Scalar, lldb_private::Value::SetCompilerType(), and lldb_private::Value::SetValueType().
Referenced by InitializeVTableSymbols().
|
private |
Definition at line 144 of file AppleObjCTrampolineHandler.h.
Referenced by AppleObjCVTables(), and InitializeVTableSymbols().
|
private |
Definition at line 139 of file AppleObjCTrampolineHandler.h.
Referenced by AppleObjCVTables(), and GetProcessSP().
|
private |
Definition at line 143 of file AppleObjCTrampolineHandler.h.
Referenced by IsAddressInVTables(), ReadRegions(), and ReadRegions().
|
private |
Definition at line 141 of file AppleObjCTrampolineHandler.h.
Referenced by AppleObjCVTables(), InitializeVTableSymbols(), and ReadRegions().
|
private |
Definition at line 142 of file AppleObjCTrampolineHandler.h.
Referenced by AppleObjCVTables(), InitializeVTableSymbols(), and ~AppleObjCVTables().