| 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().