LLDB mainline
|
#include <AppleObjCRuntimeV2.h>
Classes | |
class | ClassInfoExtractor |
Abstraction to read the Objective-C class info. More... | |
struct | DescriptorMapUpdateResult |
class | DynamicClassInfoExtractor |
We can read the class info from the Objective-C runtime using gdb_objc_realized_classes, objc_copyRealizedClassList or objc_getRealizedClassList_trylock. More... | |
class | HashTableSignature |
class | NonPointerISACache |
class | SharedCacheClassInfoExtractor |
Abstraction to read the Objective-C class info from the shared cache. More... | |
class | SharedCacheImageHeaders |
class | TaggedPointerVendorExtended |
class | TaggedPointerVendorLegacy |
class | TaggedPointerVendorRuntimeAssisted |
class | TaggedPointerVendorV2 |
Public Member Functions | |
~AppleObjCRuntimeV2 () override=default | |
LanguageRuntime * | GetPreferredLanguageRuntime (ValueObject &in_value) override |
Return the preferred language runtime instance, which in most cases will be the current instance. | |
bool | isA (const void *ClassID) const override |
bool | GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type) override |
llvm::Expected< std::unique_ptr< UtilityFunction > > | CreateObjectChecker (std::string name, ExecutionContext &exe_ctx) override |
llvm::StringRef | GetPluginName () override |
ObjCRuntimeVersions | GetRuntimeVersion () const override |
size_t | GetByteOffsetForIvar (CompilerType &parent_ast_type, const char *ivar_name) override |
void | UpdateISAToDescriptorMapIfNeeded () override |
ClassDescriptorSP | GetClassDescriptor (ValueObject &valobj) override |
ClassDescriptorSP | GetClassDescriptorFromISA (ObjCISA isa) override |
DeclVendor * | GetDeclVendor () override |
lldb::addr_t | LookupRuntimeSymbol (ConstString name) override |
EncodingToTypeSP | GetEncodingToType () override |
bool | IsTaggedPointer (lldb::addr_t ptr) override |
TaggedPointerVendor * | GetTaggedPointerVendor () override |
lldb::addr_t | GetTaggedPointerObfuscator () |
lldb::addr_t | GetRelativeSelectorBaseAddr () |
Returns the base address for relative method list selector strings. | |
void | SetRelativeSelectorBaseAddr (lldb::addr_t relative_selector_base) |
void | GetValuesForGlobalCFBooleans (lldb::addr_t &cf_true, lldb::addr_t &cf_false) override |
void | ModulesDidLoad (const ModuleList &module_list) override |
Called when modules have been loaded in the process. | |
bool | IsSharedCacheImageLoaded (uint16_t image_index) |
std::optional< uint64_t > | GetSharedCacheImageHeaderVersion () |
Public Member Functions inherited from lldb_private::AppleObjCRuntime | |
~AppleObjCRuntime () override | |
bool | isA (const void *ClassID) const override |
llvm::Error | GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope) override |
llvm::Error | GetObjectDescription (Stream &str, ValueObject &object) override |
bool | CouldHaveDynamicValue (ValueObject &in_value) override |
bool | GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type) override |
TypeAndOrName | FixUpDynamicType (const TypeAndOrName &type_and_or_name, ValueObject &static_value) override |
bool | IsModuleObjCLibrary (const lldb::ModuleSP &module_sp) override |
bool | ReadObjCLibrary (const lldb::ModuleSP &module_sp) override |
bool | HasReadObjCLibrary () override |
lldb::ThreadPlanSP | GetStepThroughTrampolinePlan (Thread &thread, bool stop_others) override |
lldb::ModuleSP | GetObjCModule () |
void | ModulesDidLoad (const ModuleList &module_list) override |
Called when modules have been loaded in the process. | |
void | SetExceptionBreakpoints () override |
void | ClearExceptionBreakpoints () override |
bool | ExceptionBreakpointsAreSet () override |
bool | ExceptionBreakpointsExplainStop (lldb::StopInfoSP stop_reason) override |
lldb::SearchFilterSP | CreateExceptionSearchFilter () override |
lldb::ValueObjectSP | GetExceptionObjectForThread (lldb::ThreadSP thread_sp) override |
lldb::ThreadSP | GetBacktraceThreadFromException (lldb::ValueObjectSP thread_sp) override |
uint32_t | GetFoundationVersion () |
virtual void | GetValuesForGlobalCFBooleans (lldb::addr_t &cf_true, lldb::addr_t &cf_false) |
virtual bool | IsTaggedPointer (lldb::addr_t addr) |
Public Member Functions inherited from lldb_private::ObjCLanguageRuntime | |
~ObjCLanguageRuntime () override | |
bool | isA (const void *ClassID) const override |
virtual TaggedPointerVendor * | GetTaggedPointerVendor () |
virtual EncodingToTypeSP | GetEncodingToType () |
virtual ClassDescriptorSP | GetClassDescriptor (ValueObject &in_value) |
ClassDescriptorSP | GetNonKVOClassDescriptor (ValueObject &in_value) |
virtual ClassDescriptorSP | GetClassDescriptorFromClassName (ConstString class_name) |
virtual ClassDescriptorSP | GetClassDescriptorFromISA (ObjCISA isa) |
ClassDescriptorSP | GetNonKVOClassDescriptor (ObjCISA isa) |
lldb::LanguageType | GetLanguageType () const override |
virtual bool | IsModuleObjCLibrary (const lldb::ModuleSP &module_sp)=0 |
virtual bool | ReadObjCLibrary (const lldb::ModuleSP &module_sp)=0 |
virtual bool | HasReadObjCLibrary ()=0 |
lldb::addr_t | LookupInMethodCache (lldb::addr_t class_addr, lldb::addr_t sel) |
lldb::addr_t | LookupInMethodCache (lldb::addr_t class_addr, llvm::StringRef sel_str) |
void | AddToMethodCache (lldb::addr_t class_addr, lldb::addr_t sel, lldb::addr_t impl_addr) |
void | AddToMethodCache (lldb::addr_t class_addr, llvm::StringRef sel_str, lldb::addr_t impl_addr) |
TypeAndOrName | LookupInClassNameCache (lldb::addr_t class_addr) |
void | AddToClassNameCache (lldb::addr_t class_addr, const char *name, lldb::TypeSP type_sp) |
void | AddToClassNameCache (lldb::addr_t class_addr, const TypeAndOrName &class_or_type_name) |
lldb::TypeSP | LookupInCompleteClassCache (ConstString &name) |
std::optional< CompilerType > | GetRuntimeType (CompilerType base_type) override |
virtual llvm::Expected< std::unique_ptr< UtilityFunction > > | CreateObjectChecker (std::string name, ExecutionContext &exe_ctx)=0 |
virtual ObjCRuntimeVersions | GetRuntimeVersion () const |
bool | IsValidISA (ObjCISA isa) |
virtual void | UpdateISAToDescriptorMapIfNeeded ()=0 |
void | UpdateISAToDescriptorMap () |
virtual ObjCISA | GetISA (ConstString name) |
virtual ObjCISA | GetParentClass (ObjCISA isa) |
virtual size_t | GetByteOffsetForIvar (CompilerType &parent_qual_type, const char *ivar_name) |
bool | HasNewLiteralsAndIndexing () |
void | SymbolsDidLoad (const ModuleList &module_list) override |
std::optional< uint64_t > | GetTypeBitSize (const CompilerType &compiler_type) override |
bool | IsAllowedRuntimeValue (ConstString name) override |
Check whether the name is "self" or "_cmd" and should show up in "frame variable". | |
Public Member Functions inherited from lldb_private::LanguageRuntime | |
virtual lldb::LanguageType | GetLanguageType () const =0 |
virtual LanguageRuntime * | GetPreferredLanguageRuntime (ValueObject &in_value) |
Return the preferred language runtime instance, which in most cases will be the current instance. | |
virtual llvm::Error | GetObjectDescription (Stream &str, ValueObject &object)=0 |
virtual llvm::Error | GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope)=0 |
virtual llvm::Expected< VTableInfo > | GetVTableInfo (ValueObject &in_value, bool check_type) |
Get the vtable information for a given value. | |
virtual bool | GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type)=0 |
virtual CompilerType | GetConcreteType (ExecutionContextScope *exe_scope, ConstString abstract_type_name) |
virtual bool | CouldHaveDynamicValue (ValueObject &in_value)=0 |
virtual TypeAndOrName | FixUpDynamicType (const TypeAndOrName &type_and_or_name, ValueObject &static_value)=0 |
virtual void | SetExceptionBreakpoints () |
virtual void | ClearExceptionBreakpoints () |
virtual bool | ExceptionBreakpointsAreSet () |
virtual bool | ExceptionBreakpointsExplainStop (lldb::StopInfoSP stop_reason) |
virtual lldb::ValueObjectSP | GetExceptionObjectForThread (lldb::ThreadSP thread_sp) |
virtual lldb::ThreadSP | GetBacktraceThreadFromException (lldb::ValueObjectSP thread_sp) |
virtual DeclVendor * | GetDeclVendor () |
virtual lldb::BreakpointResolverSP | CreateExceptionResolver (const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp)=0 |
virtual lldb::SearchFilterSP | CreateExceptionSearchFilter () |
virtual std::optional< uint64_t > | GetTypeBitSize (const CompilerType &compiler_type) |
virtual void | SymbolsDidLoad (const ModuleList &module_list) |
virtual lldb::ThreadPlanSP | GetStepThroughTrampolinePlan (Thread &thread, bool stop_others)=0 |
virtual bool | IsAllowedRuntimeValue (ConstString name) |
Identify whether a name is a runtime value that should not be hidden by from the user interface. | |
virtual std::optional< CompilerType > | GetRuntimeType (CompilerType base_type) |
void | ModulesDidLoad (const ModuleList &module_list) override |
Called when modules have been loaded in the process. | |
virtual bool | GetIRPasses (LLVMUserExpression::IRPasses &custom_passes) |
virtual lldb::addr_t | LookupRuntimeSymbol (ConstString name) |
virtual bool | isA (const void *ClassID) const |
Public Member Functions inherited from lldb_private::Runtime | |
Runtime (Process *process) | |
virtual | ~Runtime ()=default |
Runtime (const Runtime &)=delete | |
const Runtime & | operator= (const Runtime &)=delete |
Process * | GetProcess () |
Target & | GetTargetRef () |
virtual void | ModulesDidLoad (const ModuleList &module_list)=0 |
Called when modules have been loaded in the process. | |
Public Member Functions inherited from lldb_private::PluginInterface | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static void | Initialize () |
static void | Terminate () |
static lldb_private::LanguageRuntime * | CreateInstance (Process *process, lldb::LanguageType language) |
static llvm::StringRef | GetPluginNameStatic () |
static bool | classof (const LanguageRuntime *runtime) |
Static Public Member Functions inherited from lldb_private::AppleObjCRuntime | |
static void | Initialize () |
static void | Terminate () |
static bool | classof (const LanguageRuntime *runtime) |
static std::tuple< FileSpec, ConstString > | GetExceptionThrowLocation () |
Static Public Member Functions inherited from lldb_private::ObjCLanguageRuntime | |
static lldb::BreakpointPreconditionSP | GetBreakpointExceptionPrecondition (lldb::LanguageType language, bool throw_bp) |
static bool | classof (const LanguageRuntime *runtime) |
static ObjCLanguageRuntime * | Get (Process &process) |
Static Public Member Functions inherited from lldb_private::LanguageRuntime | |
static LanguageRuntime * | FindPlugin (Process *process, lldb::LanguageType language) |
static void | InitializeCommands (CommandObject *parent) |
static lldb::BreakpointSP | CreateExceptionBreakpoint (Target &target, lldb::LanguageType language, bool catch_bp, bool throw_bp, bool is_internal=false) |
static lldb::BreakpointPreconditionSP | GetExceptionPrecondition (lldb::LanguageType language, bool throw_bp) |
static lldb::UnwindPlanSP | GetRuntimeUnwindPlan (lldb_private::Thread &thread, lldb_private::RegisterContext *regctx, bool &behaves_like_zeroth_frame) |
A language runtime may be able to provide a special UnwindPlan for the frame represented by the register contents regctx when that frame is not following the normal ABI conventions. | |
Static Public Attributes | |
static char | ID = 0 |
Static Public Attributes inherited from lldb_private::AppleObjCRuntime | |
static char | ID = 0 |
Static Public Attributes inherited from lldb_private::ObjCLanguageRuntime | |
static char | ID = 0 |
Static Public Attributes inherited from lldb_private::LanguageRuntime | |
static char | ID = 0 |
Private Types | |
enum class | SharedCacheWarningReason { eExpressionUnableToRun , eExpressionExecutionFailure , eNotEnoughClassesRead } |
Private Member Functions | |
AppleObjCRuntimeV2 (Process *process, const lldb::ModuleSP &objc_module_sp) | |
ObjCISA | GetPointerISA (ObjCISA isa) |
lldb::addr_t | GetISAHashTablePointer () |
bool | RealizedClassGenerationCountChanged () |
Update the generation count of realized classes. | |
uint32_t | ParseClassInfoArray (const lldb_private::DataExtractor &data, uint32_t num_class_infos) |
void | WarnIfNoClassesCached (SharedCacheWarningReason reason) |
void | WarnIfNoExpandedSharedCache () |
lldb::addr_t | GetSharedCacheReadOnlyAddress () |
lldb::addr_t | GetSharedCacheBaseAddress () |
bool | GetCFBooleanValuesIfNeeded () |
bool | HasSymbol (ConstString Name) |
NonPointerISACache * | GetNonPointerIsaCache () |
Private Attributes | |
lldb::ModuleSP | m_objc_module_sp |
DynamicClassInfoExtractor | m_dynamic_class_info_extractor |
SharedCacheClassInfoExtractor | m_shared_cache_class_info_extractor |
std::unique_ptr< DeclVendor > | m_decl_vendor_up |
lldb::addr_t | m_tagged_pointer_obfuscator |
lldb::addr_t | m_isa_hash_table_ptr |
lldb::addr_t | m_relative_selector_base |
HashTableSignature | m_hash_signature |
bool | m_has_object_getClass |
bool | m_has_objc_copyRealizedClassList |
bool | m_has_objc_getRealizedClassList_trylock |
bool | m_loaded_objc_opt |
std::unique_ptr< NonPointerISACache > | m_non_pointer_isa_cache_up |
std::unique_ptr< TaggedPointerVendor > | m_tagged_pointer_vendor_up |
EncodingToTypeSP | m_encoding_to_type_sp |
std::once_flag | m_no_classes_cached_warning |
std::once_flag | m_no_expanded_cache_warning |
std::optional< std::pair< lldb::addr_t, lldb::addr_t > > | m_CFBoolean_values |
uint64_t | m_realized_class_generation_count |
std::unique_ptr< SharedCacheImageHeaders > | m_shared_cache_image_headers_up |
Friends | |
class | ClassDescriptorV2 |
Definition at line 28 of file AppleObjCRuntimeV2.h.
|
strongprivate |
Enumerator | |
---|---|
eExpressionUnableToRun | |
eExpressionExecutionFailure | |
eNotEnoughClassesRead |
Definition at line 431 of file AppleObjCRuntimeV2.h.
|
overridedefault |
|
private |
Definition at line 729 of file AppleObjCRuntimeV2.cpp.
References HasSymbol(), m_has_objc_copyRealizedClassList, m_has_objc_getRealizedClassList_trylock, m_has_object_getClass, RegisterObjCExceptionRecognizer(), and WarnIfNoExpandedSharedCache().
|
inlinestatic |
Definition at line 49 of file AppleObjCRuntimeV2.h.
References ID, and lldb_private::LanguageRuntime::isA().
|
overrideprotectedvirtual |
Implements lldb_private::LanguageRuntime.
Definition at line 1151 of file AppleObjCRuntimeV2.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::eLazyBoolNo, lldb_private::Breakpoint::Exact, and lldb_private::AppleObjCRuntime::GetExceptionThrowLocation().
|
static |
Definition at line 825 of file AppleObjCRuntimeV2.cpp.
References lldb_private::ObjCLanguageRuntime::eAppleObjC_V2, lldb::eLanguageTypeObjC, and lldb_private::AppleObjCRuntime::GetObjCVersion().
Referenced by Initialize(), and Terminate().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime.
Definition at line 1167 of file AppleObjCRuntimeV2.cpp.
References lldb_private::Target::CreateUtilityFunction(), lldb::eLanguageTypeC, lldb_private::Runtime::GetTargetRef(), m_has_object_getClass, and UNUSED_IF_ASSERT_DISABLED.
|
overridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 1221 of file AppleObjCRuntimeV2.cpp.
References lldb_private::ConstString::AsCString(), error(), lldb::eSymbolTypeObjCIVar, lldb_private::ModuleList::FindSymbolsWithNameAndType(), lldb_private::SymbolContextList::GetContextAtIndex(), lldb_private::Target::GetImages(), lldb_private::Symbol::GetLoadAddress(), lldb_private::SymbolContextList::GetSize(), lldb_private::Process::GetTarget(), lldb_private::CompilerType::GetTypeName(), lldb_private::ConstString::IsEmpty(), LLDB_INVALID_ADDRESS, LLDB_INVALID_IVAR_OFFSET, LookupRuntimeSymbol(), lldb_private::Runtime::m_process, lldb_private::Process::ReadUnsignedIntegerFromMemory(), and lldb_private::SymbolContext::symbol.
|
private |
Definition at line 3320 of file AppleObjCRuntimeV2.cpp.
References error(), lldb::eSymbolTypeData, lldb_private::ModuleList::FindSymbolsWithNameAndType(), lldb_private::SymbolContextList::GetContextAtIndex(), lldb_private::Target::GetImages(), lldb_private::Symbol::GetLoadAddress(), lldb_private::Runtime::GetProcess(), lldb_private::SymbolContextList::GetSize(), lldb_private::Process::GetTarget(), LLDB_INVALID_ADDRESS, m_CFBoolean_values, lldb_private::Process::ReadPointerFromMemory(), and lldb_private::SymbolContext::symbol.
Referenced by GetValuesForGlobalCFBooleans().
|
overridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 1500 of file AppleObjCRuntimeV2.cpp.
References error(), lldb_private::Process::GetABI(), GetClassDescriptor(), GetClassDescriptorFromISA(), lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::GetLog(), lldb_private::ValueObject::GetParent(), lldb_private::ValueObject::GetPointerValue(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::ValueObject::IsBaseClass(), IsTaggedPointer(), lldb_private::CompilerType::IsValid(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_tagged_pointer_vendor_up, lldb_private::Process, lldb_private::Process::ReadPointerFromMemory(), and lldb_private::Types.
Referenced by GetClassDescriptor().
|
overridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 1490 of file AppleObjCRuntimeV2.cpp.
References lldb_private::ObjCLanguageRuntime::GetClassDescriptorFromISA(), and GetNonPointerIsaCache().
Referenced by GetClassDescriptor().
|
overridevirtual |
Reimplemented from lldb_private::LanguageRuntime.
Definition at line 2692 of file AppleObjCRuntimeV2.cpp.
References m_decl_vendor_up.
Referenced by GetDynamicTypeAndAddress().
|
overridevirtual |
Reimplemented from lldb_private::AppleObjCRuntime.
Definition at line 770 of file AppleObjCRuntimeV2.cpp.
References lldb_private::Process::CalculateTarget(), lldb_private::TypeAndOrName::Clear(), lldb_private::AppleObjCRuntime::CouldHaveDynamicValue(), GetDeclVendor(), lldb_private::ObjCLanguageRuntime::GetNonKVOClassDescriptor(), lldb_private::ValueObject::GetPointerValue(), lldb_private::ValueObject::GetProcessSP(), lldb_private::ValueObject::GetTargetSP(), lldb_private::TypeAndOrName::IsEmpty(), lldb_private::ObjCLanguageRuntime::LookupInCompleteClassCache(), lldb_private::Runtime::m_process, lldb_private::Value::Scalar, lldb_private::TypeAndOrName::SetCompilerType(), lldb_private::TypeAndOrName::SetName(), lldb_private::Address::SetRawAddress(), and lldb_private::TypeAndOrName::SetTypeSP().
|
overridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 3303 of file AppleObjCRuntimeV2.cpp.
References m_encoding_to_type_sp.
Referenced by lldb_private::ClassDescriptorV2::iVarsStorage::fill().
|
private |
Definition at line 1583 of file AppleObjCRuntimeV2.cpp.
References error(), lldb::eSymbolTypeAny, lldb_private::Symbol::GetLoadAddress(), lldb_private::AppleObjCRuntime::GetObjCModule(), lldb_private::Runtime::GetProcess(), lldb_private::Process::GetTarget(), LLDB_INVALID_ADDRESS, m_isa_hash_table_ptr, and lldb_private::Process::ReadPointerFromMemory().
Referenced by lldb_private::AppleObjCRuntimeV2::HashTableSignature::NeedsUpdate().
|
inlineprivate |
Definition at line 447 of file AppleObjCRuntimeV2.h.
References lldb_private::AppleObjCRuntimeV2::NonPointerISACache::CreateInstance(), m_non_pointer_isa_cache_up, and m_objc_module_sp.
Referenced by GetClassDescriptorFromISA(), and GetPointerISA().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 62 of file AppleObjCRuntimeV2.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 39 of file AppleObjCRuntimeV2.h.
Referenced by GetPluginName(), and Initialize().
|
private |
Definition at line 3311 of file AppleObjCRuntimeV2.cpp.
References GetNonPointerIsaCache().
Referenced by lldb_private::ClassDescriptorV2::GetMetaclass().
|
overridevirtual |
Return the preferred language runtime instance, which in most cases will be the current instance.
Reimplemented from lldb_private::LanguageRuntime.
Definition at line 758 of file AppleObjCRuntimeV2.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::ObjCLanguageRuntime::GetNonKVOClassDescriptor(), lldb_private::ValueObject::GetProcessSP(), and lldb_private::Runtime::m_process.
|
inline |
Returns the base address for relative method list selector strings.
Definition at line 92 of file AppleObjCRuntimeV2.h.
References m_relative_selector_base.
Referenced by lldb_private::ClassDescriptorV2::ProcessMethodList().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 64 of file AppleObjCRuntimeV2.h.
References lldb_private::ObjCLanguageRuntime::eAppleObjC_V2.
|
private |
std::optional< uint64_t > AppleObjCRuntimeV2::GetSharedCacheImageHeaderVersion | ( | ) |
Definition at line 3390 of file AppleObjCRuntimeV2.cpp.
References lldb_private::AppleObjCRuntimeV2::SharedCacheImageHeaders::CreateSharedCacheImageHeaders(), and m_shared_cache_image_headers_up.
Referenced by lldb_private::ClassDescriptorV2::ProcessRelativeMethodLists().
|
private |
Definition at line 2457 of file AppleObjCRuntimeV2.cpp.
References lldb_private::SectionList::FindSectionByName(), lldb_private::AppleObjCRuntime::GetObjCModule(), lldb_private::Runtime::GetProcess(), lldb_private::Process::GetTarget(), and LLDB_INVALID_ADDRESS.
lldb::addr_t AppleObjCRuntimeV2::GetTaggedPointerObfuscator | ( | ) |
Definition at line 1550 of file AppleObjCRuntimeV2.cpp.
References error(), lldb::eSymbolTypeAny, lldb_private::Symbol::GetLoadAddress(), lldb_private::AppleObjCRuntime::GetObjCModule(), lldb_private::Runtime::GetProcess(), lldb_private::Process::GetTarget(), LLDB_INVALID_ADDRESS, m_tagged_pointer_obfuscator, and lldb_private::Process::ReadPointerFromMemory().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime.
Definition at line 85 of file AppleObjCRuntimeV2.h.
References m_tagged_pointer_vendor_up.
|
overridevirtual |
Reimplemented from lldb_private::AppleObjCRuntime.
Definition at line 3364 of file AppleObjCRuntimeV2.cpp.
References GetCFBooleanValuesIfNeeded(), lldb_private::AppleObjCRuntime::GetValuesForGlobalCFBooleans(), and m_CFBoolean_values.
|
private |
Definition at line 2245 of file AppleObjCRuntimeV2.cpp.
References lldb::eSymbolTypeCode, and m_objc_module_sp.
Referenced by AppleObjCRuntimeV2().
|
static |
Definition at line 1136 of file AppleObjCRuntimeV2.cpp.
References CreateInstance(), lldb_private::ObjCLanguageRuntime::GetBreakpointExceptionPrecondition(), GetPluginNameStatic(), and lldb_private::PluginManager::RegisterPlugin().
Referenced by lldb_private::AppleObjCRuntime::Initialize().
|
inlineoverridevirtual |
Reimplemented from lldb_private::AppleObjCRuntime.
Definition at line 45 of file AppleObjCRuntimeV2.h.
References ID, and lldb_private::AppleObjCRuntime::isA().
bool AppleObjCRuntimeV2::IsSharedCacheImageLoaded | ( | uint16_t | image_index | ) |
Definition at line 3379 of file AppleObjCRuntimeV2.cpp.
References lldb_private::AppleObjCRuntimeV2::SharedCacheImageHeaders::CreateSharedCacheImageHeaders(), and m_shared_cache_image_headers_up.
Referenced by lldb_private::ClassDescriptorV2::ProcessRelativeMethodLists().
|
overridevirtual |
Reimplemented from lldb_private::AppleObjCRuntime.
Definition at line 1269 of file AppleObjCRuntimeV2.cpp.
References m_tagged_pointer_vendor_up.
Referenced by GetClassDescriptor().
|
overridevirtual |
Reimplemented from lldb_private::LanguageRuntime.
Definition at line 2699 of file AppleObjCRuntimeV2.cpp.
References lldb_private::ConstString::AsCString(), lldb_private::ObjCLanguageRuntime::GetClassDescriptorFromClassName(), and LLDB_INVALID_ADDRESS.
Referenced by GetByteOffsetForIvar().
|
overridevirtual |
Called when modules have been loaded in the process.
Reimplemented from lldb_private::AppleObjCRuntime.
Definition at line 3373 of file AppleObjCRuntimeV2.cpp.
References lldb_private::AppleObjCRuntime::HasReadObjCLibrary(), m_shared_cache_image_headers_up, and lldb_private::AppleObjCRuntime::ModulesDidLoad().
|
private |
Definition at line 2179 of file AppleObjCRuntimeV2.cpp.
References lldb_private::ObjCLanguageRuntime::AddClass(), ClassDescriptorV2, lldb_private::DataExtractor::GetAddress(), lldb_private::GetLog(), lldb_private::DataExtractor::GetU32(), lldb_private::Log::GetVerbose(), lldb_private::ObjCLanguageRuntime::ISAIsCached(), LLDB_LOGF, and lldb_private::Types.
|
private |
Update the generation count of realized classes.
This is not an exact count but rather a value that is incremented when new classes are realized or destroyed. Unlike the count in gdb_objc_realized_classes, it will change when lazily named classes get realized.
Definition at line 2585 of file AppleObjCRuntimeV2.cpp.
References error(), ExtractRuntimeGlobalSymbol(), lldb_private::GetLog(), lldb_private::AppleObjCRuntime::GetObjCModule(), lldb_private::Runtime::GetProcess(), LLDB_LOG, m_realized_class_generation_count, lldb_private::Process, and lldb_private::Types.
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
inline |
Definition at line 96 of file AppleObjCRuntimeV2.h.
References m_relative_selector_base.
|
static |
Definition at line 1146 of file AppleObjCRuntimeV2.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
Referenced by lldb_private::AppleObjCRuntime::Terminate().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime.
Definition at line 2507 of file AppleObjCRuntimeV2.cpp.
References eExpressionExecutionFailure, eExpressionUnableToRun, eNotEnoughClassesRead, lldb_private::GetLog(), lldb_private::Runtime::GetProcess(), lldb_private::Process::GetStopID(), LLDB_LOGF, LLDB_SCOPED_TIMER, m_dynamic_class_info_extractor, m_hash_signature, lldb_private::ObjCLanguageRuntime::m_isa_to_descriptor_stop_id, m_loaded_objc_opt, lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_num_found, lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_retry_update, m_shared_cache_class_info_extractor, lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::m_update_ran, lldb_private::AppleObjCRuntimeV2::HashTableSignature::NeedsUpdate(), lldb_private::Process, RealizedClassGenerationCountChanged(), lldb_private::Types, UINT32_MAX, lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::UpdateISAToDescriptorMap(), lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UpdateISAToDescriptorMap(), lldb_private::AppleObjCRuntimeV2::HashTableSignature::UpdateSignature(), and WarnIfNoClassesCached().
|
private |
Definition at line 2626 of file AppleObjCRuntimeV2.cpp.
References DoesProcessHaveSharedCache(), eExpressionExecutionFailure, eExpressionUnableToRun, eNotEnoughClassesRead, lldb_private::UserID::GetID(), lldb_private::Runtime::GetProcess(), m_no_classes_cached_warning, and lldb_private::Debugger::ReportWarning().
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
private |
Definition at line 2658 of file AppleObjCRuntimeV2.cpp.
References lldb_private::Target::GetDebugger(), lldb_private::UserID::GetID(), lldb_private::Target::GetPlatform(), lldb_private::Runtime::GetProcess(), lldb_private::Process::GetTarget(), lldb_private::ObjectFile::IsInMemory(), m_no_expanded_cache_warning, m_objc_module_sp, and lldb_private::Debugger::ReportWarning().
Referenced by AppleObjCRuntimeV2().
|
friend |
Definition at line 454 of file AppleObjCRuntimeV2.h.
Referenced by ParseClassInfoArray().
|
static |
Definition at line 43 of file AppleObjCRuntimeV2.h.
|
private |
Definition at line 475 of file AppleObjCRuntimeV2.h.
Referenced by GetCFBooleanValuesIfNeeded(), and GetValuesForGlobalCFBooleans().
|
private |
Definition at line 461 of file AppleObjCRuntimeV2.h.
Referenced by GetDeclVendor().
|
private |
Definition at line 458 of file AppleObjCRuntimeV2.h.
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
private |
Definition at line 472 of file AppleObjCRuntimeV2.h.
Referenced by GetEncodingToType().
|
private |
Definition at line 467 of file AppleObjCRuntimeV2.h.
Referenced by AppleObjCRuntimeV2().
|
private |
Definition at line 468 of file AppleObjCRuntimeV2.h.
Referenced by AppleObjCRuntimeV2().
|
private |
Definition at line 466 of file AppleObjCRuntimeV2.h.
Referenced by AppleObjCRuntimeV2(), and CreateObjectChecker().
|
private |
Definition at line 465 of file AppleObjCRuntimeV2.h.
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
private |
Definition at line 463 of file AppleObjCRuntimeV2.h.
Referenced by GetISAHashTablePointer().
|
private |
Definition at line 469 of file AppleObjCRuntimeV2.h.
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
private |
Definition at line 473 of file AppleObjCRuntimeV2.h.
Referenced by WarnIfNoClassesCached().
|
private |
Definition at line 474 of file AppleObjCRuntimeV2.h.
Referenced by WarnIfNoExpandedSharedCache().
|
private |
Definition at line 470 of file AppleObjCRuntimeV2.h.
Referenced by GetNonPointerIsaCache().
|
private |
Definition at line 456 of file AppleObjCRuntimeV2.h.
Referenced by GetNonPointerIsaCache(), HasSymbol(), and WarnIfNoExpandedSharedCache().
|
private |
Definition at line 476 of file AppleObjCRuntimeV2.h.
Referenced by RealizedClassGenerationCountChanged().
|
private |
Definition at line 464 of file AppleObjCRuntimeV2.h.
Referenced by GetRelativeSelectorBaseAddr(), and SetRelativeSelectorBaseAddr().
|
private |
Definition at line 459 of file AppleObjCRuntimeV2.h.
Referenced by UpdateISAToDescriptorMapIfNeeded().
|
private |
Definition at line 477 of file AppleObjCRuntimeV2.h.
Referenced by GetSharedCacheImageHeaderVersion(), IsSharedCacheImageLoaded(), and ModulesDidLoad().
|
private |
Definition at line 462 of file AppleObjCRuntimeV2.h.
Referenced by GetTaggedPointerObfuscator().
|
private |
Definition at line 471 of file AppleObjCRuntimeV2.h.
Referenced by GetClassDescriptor(), GetTaggedPointerVendor(), and IsTaggedPointer().