LLDB  mainline
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
lldb_private::AppleObjCRuntimeV2 Class Reference

#include <AppleObjCRuntimeV2.h>

Inheritance diagram for lldb_private::AppleObjCRuntimeV2:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::AppleObjCRuntimeV2:
Collaboration graph
[legend]

Classes

struct  DescriptorMapUpdateResult
 
class  HashTableSignature
 
class  NonPointerISACache
 
class  TaggedPointerVendorExtended
 
class  TaggedPointerVendorLegacy
 
class  TaggedPointerVendorRuntimeAssisted
 
class  TaggedPointerVendorV2
 

Public Member Functions

 ~AppleObjCRuntimeV2 () override=default
 
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
 
UtilityFunctionCreateObjectChecker (const char *) override
 
ConstString GetPluginName () override
 
uint32_t GetPluginVersion () override
 
ObjCRuntimeVersions GetRuntimeVersion () const override
 
size_t GetByteOffsetForIvar (CompilerType &parent_qual_type, const char *ivar_name) override
 
void UpdateISAToDescriptorMapIfNeeded () override
 
ClassDescriptorSP GetClassDescriptor (ValueObject &in_value) 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 ()
 
void GetValuesForGlobalCFBooleans (lldb::addr_t &cf_true, lldb::addr_t &cf_false) override
 
- Public Member Functions inherited from lldb_private::AppleObjCRuntime
 ~AppleObjCRuntime () override
 
bool GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope) override
 
bool 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 ModulesDidLoad (const ModuleList &module_list) override
 
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)
 
void AddToMethodCache (lldb::addr_t class_addr, lldb::addr_t sel, 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)
 
llvm::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
 
bool GetTypeBitSize (const CompilerType &compiler_type, uint64_t &size) override
 
bool IsAllowedRuntimeValue (ConstString name) override
 Check whether the name is "self" or "_cmd" and should show up in "frame variable". More...
 
- Public Member Functions inherited from lldb_private::LanguageRuntime
 ~LanguageRuntime () override
 
virtual CompilerType GetConcreteType (ExecutionContextScope *exe_scope, ConstString abstract_type_name)
 
ProcessGetProcess ()
 
TargetGetTargetRef ()
 
virtual bool GetIRPasses (LLVMUserExpression::IRPasses &custom_passes)
 
- Public Member Functions inherited from lldb_private::PluginInterface
virtual ~PluginInterface ()
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static lldb_private::LanguageRuntimeCreateInstance (Process *process, lldb::LanguageType language)
 
static lldb_private::ConstString 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 Public Attributes

static char ID = 0
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA = 1
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSAtom = 2
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSNumber = 3
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDateTS = 4
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSManagedObject
 
static const ObjCLanguageRuntime::ObjCISA g_objc_Tagged_ISA_NSDate = 6
 
- 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
 LanguageRuntime (Process *process)
 

Private Types

enum  SharedCacheWarningReason { SharedCacheWarningReason::eExpressionExecutionFailure, SharedCacheWarningReason::eNotEnoughClassesRead }
 

Private Member Functions

 AppleObjCRuntimeV2 (Process *process, const lldb::ModuleSP &objc_module_sp)
 
ObjCISA GetPointerISA (ObjCISA isa)
 
lldb::addr_t GetISAHashTablePointer ()
 
bool UpdateISAToDescriptorMapFromMemory (RemoteNXMapTable &hash_table)
 
DescriptorMapUpdateResult UpdateISAToDescriptorMapDynamic (RemoteNXMapTable &hash_table)
 
uint32_t ParseClassInfoArray (const lldb_private::DataExtractor &data, uint32_t num_class_infos)
 
DescriptorMapUpdateResult UpdateISAToDescriptorMapSharedCache ()
 
void WarnIfNoClassesCached (SharedCacheWarningReason reason)
 
lldb::addr_t GetSharedCacheReadOnlyAddress ()
 
bool GetCFBooleanValuesIfNeeded ()
 

Private Attributes

std::unique_ptr< UtilityFunctionm_get_class_info_code
 
lldb::addr_t m_get_class_info_args
 
std::mutex m_get_class_info_args_mutex
 
std::unique_ptr< UtilityFunctionm_get_shared_cache_class_info_code
 
lldb::addr_t m_get_shared_cache_class_info_args
 
std::mutex m_get_shared_cache_class_info_args_mutex
 
std::unique_ptr< DeclVendorm_decl_vendor_up
 
lldb::addr_t m_tagged_pointer_obfuscator
 
lldb::addr_t m_isa_hash_table_ptr
 
HashTableSignature m_hash_signature
 
bool m_has_object_getClass
 
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
 
bool m_noclasses_warning_emitted
 
llvm::Optional< std::pair< lldb::addr_t, lldb::addr_t > > m_CFBoolean_values
 

Friends

class ClassDescriptorV2
 

Additional Inherited Members

- Public Types inherited from lldb_private::ObjCLanguageRuntime
enum  ObjCRuntimeVersions { ObjCRuntimeVersions::eObjC_VersionUnknown = 0, ObjCRuntimeVersions::eAppleObjC_V1 = 1, ObjCRuntimeVersions::eAppleObjC_V2 = 2 }
 
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::TypeWP > CompleteClassMap
 
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
 
llvm::Optional< uint32_tm_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::LanguageRuntime
Processm_process
 

Detailed Description

Definition at line 25 of file AppleObjCRuntimeV2.h.

Member Enumeration Documentation

◆ SharedCacheWarningReason

Enumerator
eExpressionExecutionFailure 
eNotEnoughClassesRead 

Definition at line 314 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

Member Function Documentation

◆ classof()

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

◆ CreateExceptionResolver()

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

◆ CreateInstance()

LanguageRuntime * AppleObjCRuntimeV2::CreateInstance ( Process process,
lldb::LanguageType  language 
)
static

◆ CreateObjectChecker()

UtilityFunction * AppleObjCRuntimeV2::CreateObjectChecker ( const char *  name)
overridevirtual

◆ GetByteOffsetForIvar()

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

◆ GetCFBooleanValuesIfNeeded()

bool AppleObjCRuntimeV2::GetCFBooleanValuesIfNeeded ( )
private

◆ GetClassDescriptor()

ObjCLanguageRuntime::ClassDescriptorSP AppleObjCRuntimeV2::GetClassDescriptor ( ValueObject in_value)
overridevirtual

◆ GetClassDescriptorFromISA()

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

◆ GetDeclVendor()

DeclVendor * AppleObjCRuntimeV2::GetDeclVendor ( )
overridevirtual

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 2007 of file AppleObjCRuntimeV2.cpp.

References m_decl_vendor_up.

Referenced by GetDynamicTypeAndAddress(), and GetRuntimeVersion().

◆ GetDynamicTypeAndAddress()

bool AppleObjCRuntimeV2::GetDynamicTypeAndAddress ( ValueObject in_value,
lldb::DynamicValueType  use_dynamic,
TypeAndOrName class_type_or_name,
Address address,
Value::ValueType value_type 
)
overridevirtual

◆ GetEncodingToType()

ObjCLanguageRuntime::EncodingToTypeSP AppleObjCRuntimeV2::GetEncodingToType ( )
overridevirtual

◆ GetISAHashTablePointer()

lldb::addr_t AppleObjCRuntimeV2::GetISAHashTablePointer ( )
private

◆ GetPluginName()

lldb_private::ConstString AppleObjCRuntimeV2::GetPluginName ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 821 of file AppleObjCRuntimeV2.cpp.

References GetPluginNameStatic().

Referenced by classof().

◆ GetPluginNameStatic()

lldb_private::ConstString AppleObjCRuntimeV2::GetPluginNameStatic ( )
static

Definition at line 815 of file AppleObjCRuntimeV2.cpp.

Referenced by GetPluginName(), and Initialize().

◆ GetPluginVersion()

uint32_t AppleObjCRuntimeV2::GetPluginVersion ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 825 of file AppleObjCRuntimeV2.cpp.

Referenced by classof().

◆ GetPointerISA()

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

◆ GetRuntimeVersion()

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

◆ GetSharedCacheReadOnlyAddress()

lldb::addr_t AppleObjCRuntimeV2::GetSharedCacheReadOnlyAddress ( )
private

◆ GetTaggedPointerObfuscator()

lldb::addr_t AppleObjCRuntimeV2::GetTaggedPointerObfuscator ( )

◆ GetTaggedPointerVendor()

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

◆ GetValuesForGlobalCFBooleans()

void AppleObjCRuntimeV2::GetValuesForGlobalCFBooleans ( lldb::addr_t cf_true,
lldb::addr_t cf_false 
)
overridevirtual

◆ Initialize()

void AppleObjCRuntimeV2::Initialize ( )
static

◆ isA()

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

Reimplemented from lldb_private::AppleObjCRuntime.

Definition at line 41 of file AppleObjCRuntimeV2.h.

References lldb_private::AppleObjCRuntime::isA().

◆ IsTaggedPointer()

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

Reimplemented from lldb_private::AppleObjCRuntime.

Definition at line 943 of file AppleObjCRuntimeV2.cpp.

References m_tagged_pointer_vendor_up.

Referenced by GetClassDescriptor(), and GetRuntimeVersion().

◆ LookupRuntimeSymbol()

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

◆ ParseClassInfoArray()

uint32_t AppleObjCRuntimeV2::ParseClassInfoArray ( const lldb_private::DataExtractor data,
uint32_t  num_class_infos 
)
private

◆ Terminate()

void AppleObjCRuntimeV2::Terminate ( )
static

◆ UpdateISAToDescriptorMapDynamic()

AppleObjCRuntimeV2::DescriptorMapUpdateResult AppleObjCRuntimeV2::UpdateISAToDescriptorMapDynamic ( RemoteNXMapTable hash_table)
private

Definition at line 1317 of file AppleObjCRuntimeV2.cpp.

References lldb_private::Process::AllocateMemory(), lldb_private::Status::AsCString(), lldb_private::DiagnosticManager::Clear(), lldb_private::Process::DeallocateMemory(), lldb_private::DiagnosticManager::Dump(), lldb::eBasicTypeVoid, lldb::eEncodingUint, lldb::eExpressionCompleted, lldb::eLanguageTypeObjC, error(), lldb_private::Value::eValueTypeScalar, lldb_private::FunctionCaller::ExecuteFunction(), lldb_private::Status::Fail(), lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Fail(), g_get_dynamic_class_info_body, g_get_dynamic_class_info_name, lldb_private::Process::GetAddressByteSize(), lldb_private::FunctionCaller::GetArgumentValues(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForEncodingAndBitSize(), lldb_private::Process::GetByteOrder(), lldb_private::DataBufferHeap::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), RemoteNXMapTable::GetCount(), lldb_private::ThreadList::GetExpressionExecutionThread(), lldb_private::GetLogIfAllCategoriesSet(), lldb_private::GetLogIfAnyCategoriesSet(), lldb_private::CompilerType::GetPointerType(), lldb_private::LanguageRuntime::GetProcess(), lldb_private::Value::GetScalar(), lldb_private::TypeSystemClang::GetScratch(), RemoteNXMapTable::GetTableLoadAddress(), lldb_private::Process::GetTarget(), lldb_private::LanguageRuntime::GetTargetRef(), lldb_private::Process::GetThreadList(), lldb_private::ProcessProperties::GetUtilityExpressionTimeout(), lldb_private::ValueList::GetValueAtIndex(), lldb_private::Log::GetVerbose(), LIBLLDB_LOG_PROCESS, LIBLLDB_LOG_TYPES, LLDB_INVALID_ADDRESS, LLDB_LOGF, m_get_class_info_args, m_get_class_info_args_mutex, m_get_class_info_code, ParseClassInfoArray(), lldb_private::ValueList::PushValue(), lldb_private::Process::ReadMemory(), lldb_private::Value::SetCompilerType(), lldb_private::EvaluateExpressionOptions::SetIgnoreBreakpoints(), lldb_private::EvaluateExpressionOptions::SetIsForUtilityExpr(), lldb_private::EvaluateExpressionOptions::SetStopOthers(), lldb_private::EvaluateExpressionOptions::SetTimeout(), lldb_private::EvaluateExpressionOptions::SetTryAllThreads(), lldb_private::EvaluateExpressionOptions::SetUnwindOnError(), lldb_private::Value::SetValueType(), lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Success(), lldb_private::Scalar::ULong(), and lldb_private::FunctionCaller::WriteFunctionArguments().

Referenced by lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Success(), and UpdateISAToDescriptorMapIfNeeded().

◆ UpdateISAToDescriptorMapFromMemory()

bool AppleObjCRuntimeV2::UpdateISAToDescriptorMapFromMemory ( RemoteNXMapTable hash_table)
private

◆ UpdateISAToDescriptorMapIfNeeded()

void AppleObjCRuntimeV2::UpdateISAToDescriptorMapIfNeeded ( )
overridevirtual

◆ UpdateISAToDescriptorMapSharedCache()

AppleObjCRuntimeV2::DescriptorMapUpdateResult AppleObjCRuntimeV2::UpdateISAToDescriptorMapSharedCache ( )
private

Definition at line 1580 of file AppleObjCRuntimeV2.cpp.

References lldb_private::Process::AllocateMemory(), lldb_private::Status::AsCString(), lldb_private::ConstString::AsCString(), lldb_private::DiagnosticManager::Clear(), lldb_private::Process::DeallocateMemory(), lldb_private::DiagnosticManager::Dump(), lldb::eBasicTypeVoid, lldb::eEncodingUint, lldb::eExpressionCompleted, lldb::eLanguageTypeObjC, error(), lldb::eSymbolTypeCode, lldb_private::Value::eValueTypeScalar, lldb_private::FunctionCaller::ExecuteFunction(), lldb_private::Status::Fail(), lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Fail(), g_get_shared_cache_class_info_body, g_get_shared_cache_class_info_name, g_shared_cache_class_name_funcptr, lldb_private::ObjCLanguageRuntime::Get(), lldb_private::Process::GetAddressByteSize(), lldb_private::Symbol::GetAddressRef(), lldb_private::FunctionCaller::GetArgumentValues(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForEncodingAndBitSize(), lldb_private::Process::GetByteOrder(), lldb_private::DataBufferHeap::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), lldb_private::ThreadList::GetExpressionExecutionThread(), lldb_private::Target::GetImages(), lldb_private::GetLogIfAllCategoriesSet(), lldb_private::GetLogIfAnyCategoriesSet(), lldb_private::ModuleList::GetModuleAtIndexUnlocked(), lldb_private::ModuleList::GetMutex(), lldb_private::CompilerType::GetPointerType(), lldb_private::LanguageRuntime::GetProcess(), lldb_private::Value::GetScalar(), lldb_private::TypeSystemClang::GetScratch(), GetSharedCacheReadOnlyAddress(), lldb_private::ModuleList::GetSize(), lldb_private::Process::GetTarget(), lldb_private::LanguageRuntime::GetTargetRef(), lldb_private::Process::GetThreadList(), lldb_private::ProcessProperties::GetUtilityExpressionTimeout(), lldb_private::ValueList::GetValueAtIndex(), lldb_private::Log::GetVerbose(), lldb_private::ObjCLanguageRuntime::IsModuleObjCLibrary(), lldb_private::Address::IsValid(), LIBLLDB_LOG_PROCESS, LIBLLDB_LOG_TYPES, LLDB_INVALID_ADDRESS, LLDB_LOGF, m_get_shared_cache_class_info_args, m_get_shared_cache_class_info_args_mutex, m_get_shared_cache_class_info_code, ParseClassInfoArray(), lldb_private::ValueList::PushValue(), lldb_private::Process::ReadMemory(), lldb_private::Value::SetCompilerType(), lldb_private::EvaluateExpressionOptions::SetIgnoreBreakpoints(), lldb_private::EvaluateExpressionOptions::SetIsForUtilityExpr(), lldb_private::EvaluateExpressionOptions::SetStopOthers(), lldb_private::EvaluateExpressionOptions::SetTimeout(), lldb_private::EvaluateExpressionOptions::SetTryAllThreads(), lldb_private::EvaluateExpressionOptions::SetUnwindOnError(), lldb_private::Value::SetValueType(), lldb_private::Scalar::ULong(), lldb_private::Symbol::ValueIsAddress(), and lldb_private::FunctionCaller::WriteFunctionArguments().

Referenced by lldb_private::AppleObjCRuntimeV2::DescriptorMapUpdateResult::Success(), and UpdateISAToDescriptorMapIfNeeded().

◆ WarnIfNoClassesCached()

void AppleObjCRuntimeV2::WarnIfNoClassesCached ( SharedCacheWarningReason  reason)
private

Friends And Related Function Documentation

◆ ClassDescriptorV2

friend class ClassDescriptorV2
friend

Member Data Documentation

◆ g_objc_Tagged_ISA

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA = 1
static

Definition at line 97 of file AppleObjCRuntimeV2.h.

◆ g_objc_Tagged_ISA_NSAtom

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSAtom = 2
static

Definition at line 98 of file AppleObjCRuntimeV2.h.

◆ g_objc_Tagged_ISA_NSDate

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDate = 6
static

Definition at line 103 of file AppleObjCRuntimeV2.h.

◆ g_objc_Tagged_ISA_NSDateTS

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSDateTS = 4
static

Definition at line 100 of file AppleObjCRuntimeV2.h.

◆ g_objc_Tagged_ISA_NSManagedObject

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSManagedObject
static
Initial value:
=
5

Definition at line 101 of file AppleObjCRuntimeV2.h.

◆ g_objc_Tagged_ISA_NSNumber

const ObjCLanguageRuntime::ObjCISA lldb_private::AppleObjCRuntimeV2::g_objc_Tagged_ISA_NSNumber = 3
static

Definition at line 99 of file AppleObjCRuntimeV2.h.

◆ ID

char AppleObjCRuntimeV2::ID = 0
static

Definition at line 39 of file AppleObjCRuntimeV2.h.

◆ m_CFBoolean_values

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

◆ m_decl_vendor_up

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

Definition at line 335 of file AppleObjCRuntimeV2.h.

Referenced by GetDeclVendor().

◆ m_encoding_to_type_sp

EncodingToTypeSP lldb_private::AppleObjCRuntimeV2::m_encoding_to_type_sp
private

Definition at line 343 of file AppleObjCRuntimeV2.h.

Referenced by GetEncodingToType().

◆ m_get_class_info_args

lldb::addr_t lldb_private::AppleObjCRuntimeV2::m_get_class_info_args
private

Definition at line 328 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapDynamic().

◆ m_get_class_info_args_mutex

std::mutex lldb_private::AppleObjCRuntimeV2::m_get_class_info_args_mutex
private

Definition at line 329 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapDynamic().

◆ m_get_class_info_code

std::unique_ptr<UtilityFunction> lldb_private::AppleObjCRuntimeV2::m_get_class_info_code
private

Definition at line 327 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapDynamic().

◆ m_get_shared_cache_class_info_args

lldb::addr_t lldb_private::AppleObjCRuntimeV2::m_get_shared_cache_class_info_args
private

Definition at line 332 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapSharedCache().

◆ m_get_shared_cache_class_info_args_mutex

std::mutex lldb_private::AppleObjCRuntimeV2::m_get_shared_cache_class_info_args_mutex
private

Definition at line 333 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapSharedCache().

◆ m_get_shared_cache_class_info_code

std::unique_ptr<UtilityFunction> lldb_private::AppleObjCRuntimeV2::m_get_shared_cache_class_info_code
private

Definition at line 331 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapSharedCache().

◆ m_has_object_getClass

bool lldb_private::AppleObjCRuntimeV2::m_has_object_getClass
private

Definition at line 339 of file AppleObjCRuntimeV2.h.

Referenced by AppleObjCRuntimeV2(), and CreateObjectChecker().

◆ m_hash_signature

HashTableSignature lldb_private::AppleObjCRuntimeV2::m_hash_signature
private

Definition at line 338 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapIfNeeded().

◆ m_isa_hash_table_ptr

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

Definition at line 337 of file AppleObjCRuntimeV2.h.

Referenced by GetISAHashTablePointer().

◆ m_loaded_objc_opt

bool lldb_private::AppleObjCRuntimeV2::m_loaded_objc_opt
private

Definition at line 340 of file AppleObjCRuntimeV2.h.

Referenced by UpdateISAToDescriptorMapIfNeeded().

◆ m_noclasses_warning_emitted

bool lldb_private::AppleObjCRuntimeV2::m_noclasses_warning_emitted
private

Definition at line 344 of file AppleObjCRuntimeV2.h.

Referenced by WarnIfNoClassesCached().

◆ m_non_pointer_isa_cache_up

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

Definition at line 341 of file AppleObjCRuntimeV2.h.

Referenced by GetClassDescriptorFromISA(), and GetPointerISA().

◆ m_tagged_pointer_obfuscator

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

Definition at line 336 of file AppleObjCRuntimeV2.h.

Referenced by GetTaggedPointerObfuscator().

◆ 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: