LLDB mainline
lldb_private::AppleObjCRuntimeV2 Class Reference

#include <AppleObjCRuntimeV2.h>

Inheritance diagram for lldb_private::AppleObjCRuntimeV2:
[legend]

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
LanguageRuntimeGetPreferredLanguageRuntime (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, llvm::ArrayRef< uint8_t > &local_buffer) override
 This call should return true if it could set the name and/or the type Sets address to the address of the dynamic type if value_type is set to a file or load address.
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
DeclVendorGetDeclVendor () override
lldb::addr_t LookupRuntimeSymbol (ConstString name) override
EncodingToTypeSP GetEncodingToType () override
bool IsTaggedPointer (lldb::addr_t ptr) override
TaggedPointerVendorGetTaggedPointerVendor () 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 ()
StructuredData::ObjectSP GetLanguageSpecificData (SymbolContext sc) override
 Language runtime plugins can use this API to report language-specific runtime information about this compile unit, such as additional language version details or feature flags.
Public Member Functions inherited from lldb_private::AppleObjCRuntime
 ~AppleObjCRuntime () 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
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 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 ()
Public Member Functions inherited from lldb_private::ObjCLanguageRuntime
 ~ObjCLanguageRuntime () override
bool isA (const void *ClassID) const override
ClassDescriptorSP GetNonKVOClassDescriptor (ValueObject &in_value)
virtual ClassDescriptorSP GetClassDescriptorFromClassName (ConstString class_name)
ClassDescriptorSP GetNonKVOClassDescriptor (ObjCISA isa)
lldb::LanguageType GetLanguageType () const override
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< CompilerTypeGetRuntimeType (CompilerType base_type) override
bool IsValidISA (ObjCISA isa)
void UpdateISAToDescriptorMap ()
virtual ObjCISA GetISA (ConstString name)
virtual ObjCISA GetParentClass (ObjCISA isa)
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 llvm::Expected< VTableInfoGetVTableInfo (ValueObject &in_value, bool check_type)
 Get the vtable information for a given value.
virtual CompilerType GetConcreteType (ExecutionContextScope *exe_scope, ConstString abstract_type_name)
void ModulesDidLoad (const ModuleList &module_list) override
 Called when modules have been loaded in the process.
virtual bool GetIRPasses (LLVMUserExpression::IRPasses &custom_passes)
virtual bool IsSymbolARuntimeThunk (const Symbol &symbol)
Public Member Functions inherited from lldb_private::Runtime
 Runtime (Process *process)
virtual ~Runtime ()=default
 Runtime (const Runtime &)=delete
const Runtimeoperator= (const Runtime &)=delete
ProcessGetProcess ()
TargetGetTargetRef ()
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete

Static Public Member Functions

static void Initialize ()
static void Terminate ()
static lldb_private::LanguageRuntimeCreateInstance (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, ConstStringGetExceptionThrowLocation ()
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 ObjCLanguageRuntimeGet (Process &process)
Static Public Member Functions inherited from lldb_private::LanguageRuntime
static LanguageRuntimeFindPlugin (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

Protected Member Functions

lldb::BreakpointResolverSP CreateExceptionResolver (const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp) override
Protected Member Functions inherited from lldb_private::AppleObjCRuntime
 AppleObjCRuntime (Process *process)
bool CalculateHasNewLiteralsAndIndexing () override
void ReadObjCLibraryIfNeeded (const ModuleList &module_list)
AddressGetPrintForDebuggerAddr ()
Protected Member Functions inherited from lldb_private::ObjCLanguageRuntime
 ObjCLanguageRuntime (Process *process)
bool ISAIsCached (ObjCISA isa) const
bool AddClass (ObjCISA isa, const ClassDescriptorSP &descriptor_sp)
bool AddClass (ObjCISA isa, const ClassDescriptorSP &descriptor_sp, const char *class_name)
bool AddClass (ObjCISA isa, const ClassDescriptorSP &descriptor_sp, uint32_t class_name_hash)
ISAToDescriptorIterator GetDescriptorIterator (ConstString name)
std::pair< ISAToDescriptorIterator, ISAToDescriptorIteratorGetDescriptorIteratorPair (bool update_if_needed=true)
void ReadObjCLibraryIfNeeded (const ModuleList &module_list)
 ObjCLanguageRuntime (const ObjCLanguageRuntime &)=delete
const ObjCLanguageRuntimeoperator= (const ObjCLanguageRuntime &)=delete
Protected Member Functions inherited from lldb_private::LanguageRuntime
virtual lldb::UnwindPlanSP GetRuntimeUnwindPlan (lldb::ProcessSP process_sp, lldb_private::RegisterContext *regctx, bool &behaves_like_zeroth_frame)
 LanguageRuntime (Process *process)

Private Types

enum class  SharedCacheWarningReason { eExpressionUnableToRun , eExpressionExecutionFailure , eNotEnoughClassesRead }
using ValueObjectSet = llvm::SmallPtrSet<ValueObject *, 8>

Private Member Functions

 AppleObjCRuntimeV2 (Process *process, const lldb::ModuleSP &objc_module_sp)
ObjCISA GetPointerISA (ObjCISA isa)
lldb::addr_t GetISAHashTablePointer ()
ClassDescriptorSP GetClassDescriptorImpl (ValueObject &valobj, ValueObjectSet &seen)
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)
NonPointerISACacheGetNonPointerIsaCache ()

Private Attributes

lldb::ModuleSP m_objc_module_sp
DynamicClassInfoExtractor m_dynamic_class_info_extractor
SharedCacheClassInfoExtractor m_shared_cache_class_info_extractor
std::unique_ptr< DeclVendorm_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< NonPointerISACachem_non_pointer_isa_cache_up
std::unique_ptr< TaggedPointerVendorm_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< SharedCacheImageHeadersm_shared_cache_image_headers_up

Friends

class ClassDescriptorV2

Additional Inherited Members

Public Types inherited from lldb_private::ObjCLanguageRuntime
enum class  ObjCRuntimeVersions { eObjC_VersionUnknown = 0 , eAppleObjC_V1 = 1 , eAppleObjC_V2 = 2 , eGNUstep_libobjc2 = 3 }
typedef lldb::addr_t ObjCISA
typedef std::shared_ptr< ClassDescriptorClassDescriptorSP
typedef std::shared_ptr< EncodingToTypeEncodingToTypeSP
Protected Types inherited from lldb_private::ObjCLanguageRuntime
typedef std::map< ConstString, lldb::TypeWPCompleteClassMap
typedef std::unordered_set< ConstString, ConstStringSetHelpers, ConstStringSetHelpersCompleteClassSet
Static Protected Member Functions inherited from lldb_private::AppleObjCRuntime
static bool AppleIsModuleObjCLibrary (const lldb::ModuleSP &module_sp)
static ObjCRuntimeVersions GetObjCVersion (Process *process, lldb::ModuleSP &objc_module_sp)
Protected Attributes inherited from lldb_private::AppleObjCRuntime
std::unique_ptr< Addressm_PrintForDebugger_addr
bool m_read_objc_library
std::unique_ptr< lldb_private::AppleObjCTrampolineHandlerm_objc_trampoline_handler_up
lldb::BreakpointSP m_objc_exception_bp_sp
lldb::ModuleWP m_objc_module_wp
std::unique_ptr< FunctionCallerm_print_object_caller_up
std::optional< uint32_t > m_Foundation_major
Protected Attributes inherited from lldb_private::ObjCLanguageRuntime
uint32_t m_isa_to_descriptor_stop_id
CompleteClassMap m_complete_class_cache
CompleteClassSet m_negative_complete_class_cache
Protected Attributes inherited from lldb_private::Runtime
Processm_process

Detailed Description

Definition at line 29 of file AppleObjCRuntimeV2.h.

Member Typedef Documentation

◆ ValueObjectSet

using lldb_private::AppleObjCRuntimeV2::ValueObjectSet = llvm::SmallPtrSet<ValueObject *, 8>
private

Definition at line 425 of file AppleObjCRuntimeV2.h.

Member Enumeration Documentation

◆ SharedCacheWarningReason

Enumerator
eExpressionUnableToRun 
eExpressionExecutionFailure 
eNotEnoughClassesRead 

Definition at line 438 of file AppleObjCRuntimeV2.h.

Constructor & Destructor Documentation

◆ ~AppleObjCRuntimeV2()

lldb_private::AppleObjCRuntimeV2::~AppleObjCRuntimeV2 ( )
overridedefault

◆ AppleObjCRuntimeV2()

AppleObjCRuntimeV2::AppleObjCRuntimeV2 ( Process * process,
const lldb::ModuleSP & objc_module_sp )
private

Definition at line 736 of file AppleObjCRuntimeV2.cpp.

References lldb_private::AppleObjCRuntime::AppleObjCRuntime(), CreateInstance(), HasSymbol(), LLDB_INVALID_ADDRESS, m_CFBoolean_values, m_decl_vendor_up, m_dynamic_class_info_extractor, m_encoding_to_type_sp, m_has_objc_copyRealizedClassList, m_has_objc_getRealizedClassList_trylock, m_has_object_getClass, m_hash_signature, m_isa_hash_table_ptr, m_loaded_objc_opt, m_non_pointer_isa_cache_up, m_objc_module_sp, m_realized_class_generation_count, m_relative_selector_base, m_shared_cache_class_info_extractor, m_tagged_pointer_obfuscator, m_tagged_pointer_vendor_up, RegisterObjCExceptionRecognizer(), and WarnIfNoExpandedSharedCache().

Referenced by lldb_private::AppleObjCRuntimeV2::ClassInfoExtractor::ClassInfoExtractor(), CreateInstance(), lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::DynamicClassInfoExtractor(), lldb_private::AppleObjCRuntimeV2::HashTableSignature::HashTableSignature(), lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorExtended::IsPossibleExtendedTaggedPointer(), lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::SharedCacheClassInfoExtractor(), lldb_private::AppleObjCRuntimeV2::SharedCacheImageHeaders::SharedCacheImageHeaders(), lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorLegacy::TaggedPointerVendorLegacy(), lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::TaggedPointerVendorV2(), and lldb_private::AppleObjCRuntimeV2::TaggedPointerVendorV2::~TaggedPointerVendorV2().

Member Function Documentation

◆ classof()

bool lldb_private::AppleObjCRuntimeV2::classof ( const LanguageRuntime * runtime)
inlinestatic

Definition at line 50 of file AppleObjCRuntimeV2.h.

References ID, and lldb_private::LanguageRuntime::isA().

◆ CreateExceptionResolver()

BreakpointResolverSP AppleObjCRuntimeV2::CreateExceptionResolver ( const lldb::BreakpointSP & bkpt,
bool catch_bp,
bool throw_bp )
overrideprotectedvirtual

◆ CreateInstance()

◆ CreateObjectChecker()

llvm::Expected< std::unique_ptr< UtilityFunction > > AppleObjCRuntimeV2::CreateObjectChecker ( std::string name,
ExecutionContext & exe_ctx )
overridevirtual

Implements lldb_private::ObjCLanguageRuntime.

Definition at line 1174 of file AppleObjCRuntimeV2.cpp.

References m_has_object_getClass.

◆ GetByteOffsetForIvar()

size_t AppleObjCRuntimeV2::GetByteOffsetForIvar ( CompilerType & parent_ast_type,
const char * ivar_name )
overridevirtual

Reimplemented from lldb_private::ObjCLanguageRuntime.

Definition at line 1194 of file AppleObjCRuntimeV2.cpp.

◆ GetCFBooleanValuesIfNeeded()

bool AppleObjCRuntimeV2::GetCFBooleanValuesIfNeeded ( )
private

Definition at line 3305 of file AppleObjCRuntimeV2.cpp.

◆ GetClassDescriptor()

ObjCLanguageRuntime::ClassDescriptorSP AppleObjCRuntimeV2::GetClassDescriptor ( ValueObject & valobj)
overridevirtual

Reimplemented from lldb_private::ObjCLanguageRuntime.

Definition at line 1473 of file AppleObjCRuntimeV2.cpp.

◆ GetClassDescriptorFromISA()

ObjCLanguageRuntime::ClassDescriptorSP AppleObjCRuntimeV2::GetClassDescriptorFromISA ( ObjCISA isa)
overridevirtual

Reimplemented from lldb_private::ObjCLanguageRuntime.

Definition at line 1463 of file AppleObjCRuntimeV2.cpp.

References LLDB_INVALID_ADDRESS.

◆ GetClassDescriptorImpl()

◆ GetDeclVendor()

DeclVendor * AppleObjCRuntimeV2::GetDeclVendor ( )
overridevirtual

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 2677 of file AppleObjCRuntimeV2.cpp.

References m_objc_module_sp.

Referenced by GetDynamicTypeAndAddress().

◆ GetDynamicTypeAndAddress()

bool AppleObjCRuntimeV2::GetDynamicTypeAndAddress ( ValueObject & in_value,
lldb::DynamicValueType use_dynamic,
TypeAndOrName & class_type_or_name,
Address & address,
Value::ValueType & value_type,
llvm::ArrayRef< uint8_t > & local_buffer )
overridevirtual

◆ GetEncodingToType()

ObjCLanguageRuntime::EncodingToTypeSP AppleObjCRuntimeV2::GetEncodingToType ( )
overridevirtual

◆ GetISAHashTablePointer()

◆ GetLanguageSpecificData()

StructuredData::ObjectSP AppleObjCRuntimeV2::GetLanguageSpecificData ( SymbolContext sc)
overridevirtual

Language runtime plugins can use this API to report language-specific runtime information about this compile unit, such as additional language version details or feature flags.

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 3387 of file AppleObjCRuntimeV2.cpp.

References m_CFBoolean_values.

◆ GetNonPointerIsaCache()

NonPointerISACache * lldb_private::AppleObjCRuntimeV2::GetNonPointerIsaCache ( )
inlineprivate

◆ GetPluginName()

llvm::StringRef lldb_private::AppleObjCRuntimeV2::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 63 of file AppleObjCRuntimeV2.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

llvm::StringRef lldb_private::AppleObjCRuntimeV2::GetPluginNameStatic ( )
inlinestatic

Definition at line 40 of file AppleObjCRuntimeV2.h.

Referenced by GetPluginName(), and Initialize().

◆ GetPointerISA()

lldb_private::AppleObjCRuntime::ObjCISA AppleObjCRuntimeV2::GetPointerISA ( ObjCISA isa)
private

Definition at line 3296 of file AppleObjCRuntimeV2.cpp.

◆ GetPreferredLanguageRuntime()

LanguageRuntime * AppleObjCRuntimeV2::GetPreferredLanguageRuntime ( ValueObject & in_value)
overridevirtual

Return the preferred language runtime instance, which in most cases will be the current instance.

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 765 of file AppleObjCRuntimeV2.cpp.

References lldb::eLanguageTypeUnknown, lldb_private::ObjCLanguageRuntime::GetNonKVOClassDescriptor(), lldb_private::ValueObject::GetProcessSP(), and lldb_private::Runtime::m_process.

◆ GetRelativeSelectorBaseAddr()

lldb::addr_t lldb_private::AppleObjCRuntimeV2::GetRelativeSelectorBaseAddr ( )
inline

Returns the base address for relative method list selector strings.

Definition at line 93 of file AppleObjCRuntimeV2.h.

References m_relative_selector_base.

◆ GetRuntimeVersion()

ObjCRuntimeVersions lldb_private::AppleObjCRuntimeV2::GetRuntimeVersion ( ) const
inlineoverridevirtual

◆ GetSharedCacheBaseAddress()

lldb::addr_t AppleObjCRuntimeV2::GetSharedCacheBaseAddress ( )
private

◆ GetSharedCacheImageHeaderVersion()

std::optional< uint64_t > AppleObjCRuntimeV2::GetSharedCacheImageHeaderVersion ( )

Definition at line 3375 of file AppleObjCRuntimeV2.cpp.

◆ GetSharedCacheReadOnlyAddress()

lldb::addr_t AppleObjCRuntimeV2::GetSharedCacheReadOnlyAddress ( )
private

Definition at line 2439 of file AppleObjCRuntimeV2.cpp.

◆ GetTaggedPointerObfuscator()

lldb::addr_t AppleObjCRuntimeV2::GetTaggedPointerObfuscator ( )

◆ GetTaggedPointerVendor()

TaggedPointerVendor * lldb_private::AppleObjCRuntimeV2::GetTaggedPointerVendor ( )
inlineoverridevirtual

Reimplemented from lldb_private::ObjCLanguageRuntime.

Definition at line 86 of file AppleObjCRuntimeV2.h.

References m_tagged_pointer_vendor_up.

◆ GetValuesForGlobalCFBooleans()

◆ HasSymbol()

bool AppleObjCRuntimeV2::HasSymbol ( ConstString Name)
private

Definition at line 2227 of file AppleObjCRuntimeV2.cpp.

Referenced by AppleObjCRuntimeV2().

◆ Initialize()

◆ isA()

bool lldb_private::AppleObjCRuntimeV2::isA ( const void * ClassID) const
inlineoverridevirtual

Reimplemented from lldb_private::AppleObjCRuntime.

Definition at line 46 of file AppleObjCRuntimeV2.h.

References ID, and lldb_private::AppleObjCRuntime::isA().

◆ IsSharedCacheImageLoaded()

bool AppleObjCRuntimeV2::IsSharedCacheImageLoaded ( uint16_t image_index)

Definition at line 3364 of file AppleObjCRuntimeV2.cpp.

References error(), and LLDB_INVALID_ADDRESS.

◆ IsTaggedPointer()

bool AppleObjCRuntimeV2::IsTaggedPointer ( lldb::addr_t ptr)
overridevirtual

◆ LookupRuntimeSymbol()

lldb::addr_t AppleObjCRuntimeV2::LookupRuntimeSymbol ( ConstString name)
overridevirtual

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 2684 of file AppleObjCRuntimeV2.cpp.

◆ ModulesDidLoad()

void AppleObjCRuntimeV2::ModulesDidLoad ( const ModuleList & module_list)
overridevirtual

Called when modules have been loaded in the process.

Reimplemented from lldb_private::AppleObjCRuntime.

Definition at line 3358 of file AppleObjCRuntimeV2.cpp.

◆ ParseClassInfoArray()

◆ RealizedClassGenerationCountChanged()

bool AppleObjCRuntimeV2::RealizedClassGenerationCountChanged ( )
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 2567 of file AppleObjCRuntimeV2.cpp.

References eExpressionExecutionFailure, eExpressionUnableToRun, eNotEnoughClassesRead, and m_loaded_objc_opt.

◆ SetRelativeSelectorBaseAddr()

void lldb_private::AppleObjCRuntimeV2::SetRelativeSelectorBaseAddr ( lldb::addr_t relative_selector_base)
inline

Definition at line 97 of file AppleObjCRuntimeV2.h.

References m_relative_selector_base.

◆ Terminate()

void AppleObjCRuntimeV2::Terminate ( )
static

◆ UpdateISAToDescriptorMapIfNeeded()

void AppleObjCRuntimeV2::UpdateISAToDescriptorMapIfNeeded ( )
overridevirtual

◆ WarnIfNoClassesCached()

void AppleObjCRuntimeV2::WarnIfNoClassesCached ( SharedCacheWarningReason reason)
private

◆ WarnIfNoExpandedSharedCache()

void AppleObjCRuntimeV2::WarnIfNoExpandedSharedCache ( )
private

Definition at line 2640 of file AppleObjCRuntimeV2.cpp.

Referenced by AppleObjCRuntimeV2().

◆ ClassDescriptorV2

friend class ClassDescriptorV2
friend

Definition at line 461 of file AppleObjCRuntimeV2.h.

References ClassDescriptorV2.

Referenced by ClassDescriptorV2.

Member Data Documentation

◆ ID

char AppleObjCRuntimeV2::ID = 0
static

Definition at line 44 of file AppleObjCRuntimeV2.h.

Referenced by classof(), and isA().

◆ m_CFBoolean_values

std::optional<std::pair<lldb::addr_t, lldb::addr_t> > lldb_private::AppleObjCRuntimeV2::m_CFBoolean_values
private

Definition at line 482 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), and GetLanguageSpecificData().

◆ m_decl_vendor_up

std::unique_ptr<DeclVendor> lldb_private::AppleObjCRuntimeV2::m_decl_vendor_up
private

Definition at line 468 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_dynamic_class_info_extractor

DynamicClassInfoExtractor lldb_private::AppleObjCRuntimeV2::m_dynamic_class_info_extractor
private

Definition at line 465 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_encoding_to_type_sp

EncodingToTypeSP lldb_private::AppleObjCRuntimeV2::m_encoding_to_type_sp
private

Definition at line 479 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_has_objc_copyRealizedClassList

bool lldb_private::AppleObjCRuntimeV2::m_has_objc_copyRealizedClassList
private

Definition at line 474 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_has_objc_getRealizedClassList_trylock

bool lldb_private::AppleObjCRuntimeV2::m_has_objc_getRealizedClassList_trylock
private

Definition at line 475 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_has_object_getClass

bool lldb_private::AppleObjCRuntimeV2::m_has_object_getClass
private

Definition at line 473 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), and CreateObjectChecker().

◆ m_hash_signature

HashTableSignature lldb_private::AppleObjCRuntimeV2::m_hash_signature
private

Definition at line 472 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_isa_hash_table_ptr

lldb::addr_t lldb_private::AppleObjCRuntimeV2::m_isa_hash_table_ptr
private

Definition at line 470 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_loaded_objc_opt

bool lldb_private::AppleObjCRuntimeV2::m_loaded_objc_opt
private

◆ m_no_classes_cached_warning

std::once_flag lldb_private::AppleObjCRuntimeV2::m_no_classes_cached_warning
private

Definition at line 480 of file AppleObjCRuntimeV2.h.

◆ m_no_expanded_cache_warning

std::once_flag lldb_private::AppleObjCRuntimeV2::m_no_expanded_cache_warning
private

Definition at line 481 of file AppleObjCRuntimeV2.h.

◆ m_non_pointer_isa_cache_up

std::unique_ptr<NonPointerISACache> lldb_private::AppleObjCRuntimeV2::m_non_pointer_isa_cache_up
private

Definition at line 477 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), and GetNonPointerIsaCache().

◆ m_objc_module_sp

lldb::ModuleSP lldb_private::AppleObjCRuntimeV2::m_objc_module_sp
private

Definition at line 463 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), GetDeclVendor(), and GetNonPointerIsaCache().

◆ m_realized_class_generation_count

uint64_t lldb_private::AppleObjCRuntimeV2::m_realized_class_generation_count
private

Definition at line 483 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), and WarnIfNoClassesCached().

◆ m_relative_selector_base

lldb::addr_t lldb_private::AppleObjCRuntimeV2::m_relative_selector_base
private

◆ m_shared_cache_class_info_extractor

SharedCacheClassInfoExtractor lldb_private::AppleObjCRuntimeV2::m_shared_cache_class_info_extractor
private

Definition at line 466 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2().

◆ m_shared_cache_image_headers_up

std::unique_ptr<SharedCacheImageHeaders> lldb_private::AppleObjCRuntimeV2::m_shared_cache_image_headers_up
private

◆ m_tagged_pointer_obfuscator

lldb::addr_t lldb_private::AppleObjCRuntimeV2::m_tagged_pointer_obfuscator
private

◆ m_tagged_pointer_vendor_up

std::unique_ptr<TaggedPointerVendor> lldb_private::AppleObjCRuntimeV2::m_tagged_pointer_vendor_up
private

The documentation for this class was generated from the following files: