|
LLDB mainline
|
#include <MicrosoftABIRuntime.h>
Public Member Functions | |
| MicrosoftABIRuntime (Process *process) | |
| llvm::StringRef | GetName () const override |
| bool | GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, const LanguageRuntime::VTableInfo &vtable_info, TypeAndOrName &class_type_or_name, Address &dynamic_address) override |
| bool | IsVTableSymbol (Mangled &mangled) const override |
| Public Member Functions inherited from lldb_private::CommonABIRuntime | |
| virtual | ~CommonABIRuntime ()=default |
| virtual void | AppendExceptionBreakpointFunctions (std::vector< const char * > &names, bool catch_bp, bool throw_bp, bool for_expressions) |
| virtual void | AppendExceptionBreakpointFilterModules (FileSpecList &list, const Target &target) |
| virtual lldb::ValueObjectSP | GetExceptionObjectForThread (lldb::ThreadSP thread_sp) |
Private Types | |
| using | OffsetToTopCache = std::map<Address, int64_t> |
Private Member Functions | |
| TypeAndOrName | GetTypeInfo (ValueObject &in_value, const LanguageRuntime::VTableInfo &vtable_info, llvm::SmallVectorImpl< llvm::StringRef > &vtable_components) |
| std::optional< int64_t > | GetOffsetToTop (ValueObject &in_value, TypeAndOrName &class_type_or_name, const LanguageRuntime::VTableInfo &vtable_info) |
| std::optional< int64_t > | GetOffsetToTopFromRTTI (const LanguageRuntime::VTableInfo &vtable_info, const CompilerType &dynamic_type) |
| std::optional< int64_t > | GetOffsetToTopFromAST (const CompilerType &in_type, ValueObject &in_value, const CompilerType &dyn_type, const LanguageRuntime::VTableInfo &vtable_info, llvm::ArrayRef< llvm::StringRef > vtable_components) |
Private Attributes | |
| OffsetToTopCache | m_offset_to_top_map |
Additional Inherited Members | |
| Protected Member Functions inherited from lldb_private::CommonABIRuntime | |
| CommonABIRuntime (Process *process) | |
| lldb::TypeSP | LookupTypeByName (llvm::StringRef type_name, lldb::ModuleSP preferred_module, bool &any_found) const |
| Find a type by its name, preferably in preferred_module. | |
| TypeAndOrName | GetDynamicTypeInfo (const lldb_private::Address &vtable_addr) |
| void | SetDynamicTypeInfo (const lldb_private::Address &vtable_addr, const TypeAndOrName &type_info) |
| Protected Attributes inherited from lldb_private::CommonABIRuntime | |
| Process * | m_process |
| std::mutex | m_mutex |
Definition at line 18 of file MicrosoftABIRuntime.h.
|
private |
Definition at line 52 of file MicrosoftABIRuntime.h.
| MicrosoftABIRuntime::MicrosoftABIRuntime | ( | Process * | process | ) |
Definition at line 47 of file MicrosoftABIRuntime.cpp.
References lldb_private::CommonABIRuntime::CommonABIRuntime().
|
overridevirtual |
Reimplemented from lldb_private::CommonABIRuntime.
Definition at line 50 of file MicrosoftABIRuntime.cpp.
References lldb_private::ValueObject::AddrAndType::address, GetOffsetToTop(), lldb_private::ValueObject::GetPointerValue(), lldb_private::CommonABIRuntime::m_process, and lldb_private::Address::SetRawAddress().
|
inlineoverridevirtual |
Implements lldb_private::CommonABIRuntime.
Definition at line 22 of file MicrosoftABIRuntime.h.
|
private |
Definition at line 114 of file MicrosoftABIRuntime.cpp.
References lldb_private::LanguageRuntime::VTableInfo::addr, lldb_private::ValueObject::AddrAndType::address, lldb_private::TypeSystemClang::AreTypesSame(), lldb_private::TypeAndOrName::GetCompilerType(), lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::GetCompleteType(), lldb_private::ConstString::GetCString(), lldb_private::GetLog(), GetOffsetToTopFromAST(), GetOffsetToTopFromRTTI(), lldb_private::CompilerType::GetPointeeType(), lldb_private::ValueObject::GetPointerValue(), GetTypeInfo(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::IsPointerOrReferenceType(), LLDB_LOG, lldb_private::CommonABIRuntime::m_mutex, m_offset_to_top_map, and lldb_private::Object.
Referenced by GetDynamicTypeAndAddress().
|
private |
Definition at line 383 of file MicrosoftABIRuntime.cpp.
References lldb_private::ValueObject::AddrAndType::address, lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), lldb_private::GetLog(), GetOffsetOfBaseFromAST(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ValueObject::GetPointerValue(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::GetTypeSystem(), LLDB_LOG, and lldb_private::Object.
Referenced by GetOffsetToTop().
|
private |
Definition at line 202 of file MicrosoftABIRuntime.cpp.
References lldb_private::LanguageRuntime::VTableInfo::addr, lldb_private::Address::CalculateSymbolContextSymbol(), error(), lldb_private::Address::GetLoadAddress(), lldb_private::GetLog(), lldb_private::Symbol::GetName(), lldb_private::Address::GetOffset(), lldb_private::ConstString::GetStringRef(), lldb_private::CompilerType::GetTypeSystem(), LLDB_INVALID_ADDRESS, LLDB_LOG, LLDB_LOG_ERROR, lldb_private::CommonABIRuntime::m_process, lldb_private::Object, lldb_private::Target::ReadSignedIntegerFromMemory(), s_rtti_complete_object_locator_indicator, and lldb_private::Address::Slide().
Referenced by GetOffsetToTop().
|
private |
Definition at line 72 of file MicrosoftABIRuntime.cpp.
References lldb_private::LanguageRuntime::VTableInfo::addr, lldb_private::ValueObject::AddrAndType::address, lldb_private::Symbol::CalculateSymbolContextModule(), lldb_private::Mangled::GetDemangledName(), lldb_private::CommonABIRuntime::GetDynamicTypeInfo(), lldb_private::GetLog(), lldb_private::Symbol::GetMangled(), lldb_private::ValueObject::GetPointerValue(), lldb_private::ConstString::GetStringRef(), lldb_private::ValueObject::GetTypeName(), lldb_private::Address::IsSectionOffset(), LLDB_LOG, lldb_private::CommonABIRuntime::LookupTypeByName(), lldb_private::Object, lldb_private::CommonABIRuntime::SetDynamicTypeInfo(), lldb_private::TypeAndOrName::SetName(), lldb_private::TypeAndOrName::SetTypeSP(), SplitVTableComponents(), StripDemangledVTableSuffix(), and lldb_private::LanguageRuntime::VTableInfo::symbol.
Referenced by GetOffsetToTop().
Reimplemented from lldb_private::CommonABIRuntime.
Definition at line 67 of file MicrosoftABIRuntime.cpp.
References lldb_private::Mangled::GetDemangledName(), lldb_private::ConstString::GetStringRef(), and s_vtable_demangled_indicator.
|
private |
Definition at line 54 of file MicrosoftABIRuntime.h.
Referenced by GetOffsetToTop().