LLDB mainline
lldb_private::ObjCLanguageRuntime Class Referenceabstract

#include <ObjCLanguageRuntime.h>

Inheritance diagram for lldb_private::ObjCLanguageRuntime:
[legend]

Classes

struct  ClassAndSel
struct  ClassAndSelStr
class  ClassDescriptor
struct  ConstStringSetHelpers
class  EncodingToType
class  ObjCExceptionPrecondition
class  TaggedPointerVendor

Public Types

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

Public Member Functions

 ~ObjCLanguageRuntime () override
bool isA (const void *ClassID) const override
virtual TaggedPointerVendorGetTaggedPointerVendor ()
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< CompilerTypeGetRuntimeType (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 LanguageRuntimeGetPreferredLanguageRuntime (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< VTableInfoGetVTableInfo (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, llvm::ArrayRef< uint8_t > &local_buffer)=0
 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.
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 DeclVendorGetDeclVendor ()
virtual lldb::BreakpointResolverSP CreateExceptionResolver (const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp)=0
virtual lldb::SearchFilterSP CreateExceptionSearchFilter ()
virtual lldb::ThreadPlanSP GetStepThroughTrampolinePlan (Thread &thread, bool stop_others)=0
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)
virtual lldb::addr_t LookupRuntimeSymbol (ConstString name)
virtual StructuredData::ObjectSP GetLanguageSpecificData (SymbolContext sc)
 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::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
virtual llvm::StringRef GetPluginName ()=0
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete

Static Public Member Functions

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::LanguageRuntime
static char ID = 0

Protected Types

typedef std::map< ConstString, lldb::TypeWPCompleteClassMap
typedef std::unordered_set< ConstString, ConstStringSetHelpers, ConstStringSetHelpersCompleteClassSet

Protected Member Functions

 ObjCLanguageRuntime (Process *process)
virtual bool CalculateHasNewLiteralsAndIndexing ()
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)

Protected Attributes

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

Private Types

typedef std::map< ClassAndSel, lldb::addr_tMsgImplMap
typedef std::map< ClassAndSelStr, lldb::addr_tMsgImplStrMap
typedef std::map< ObjCISA, ClassDescriptorSPISAToDescriptorMap
typedef std::multimap< uint32_t, ObjCISAHashToISAMap
typedef ISAToDescriptorMap::iterator ISAToDescriptorIterator
typedef HashToISAMap::iterator HashToISAIterator
typedef ThreadSafeDenseMap< void *, uint64_t > TypeSizeCache

Private Attributes

MsgImplMap m_impl_cache
MsgImplStrMap m_impl_str_cache
LazyBool m_has_new_literals_and_indexing
ISAToDescriptorMap m_isa_to_descriptor
HashToISAMap m_hash_to_isa_map
TypeSizeCache m_type_size_cache

Friends

class ::CommandObjectObjC_ClassTable_Dump

Detailed Description

Definition at line 37 of file ObjCLanguageRuntime.h.

Member Typedef Documentation

◆ ClassDescriptorSP

◆ CompleteClassMap

◆ CompleteClassSet

◆ EncodingToTypeSP

◆ HashToISAIterator

typedef HashToISAMap::iterator lldb_private::ObjCLanguageRuntime::HashToISAIterator
private

Definition at line 425 of file ObjCLanguageRuntime.h.

◆ HashToISAMap

typedef std::multimap<uint32_t, ObjCISA> lldb_private::ObjCLanguageRuntime::HashToISAMap
private

Definition at line 423 of file ObjCLanguageRuntime.h.

◆ ISAToDescriptorIterator

typedef ISAToDescriptorMap::iterator lldb_private::ObjCLanguageRuntime::ISAToDescriptorIterator
private

Definition at line 424 of file ObjCLanguageRuntime.h.

◆ ISAToDescriptorMap

◆ MsgImplMap

◆ MsgImplStrMap

◆ ObjCISA

◆ TypeSizeCache

Definition at line 426 of file ObjCLanguageRuntime.h.

Member Enumeration Documentation

◆ ObjCRuntimeVersions

Enumerator
eObjC_VersionUnknown 
eAppleObjC_V1 
eAppleObjC_V2 
eGNUstep_libobjc2 

Definition at line 39 of file ObjCLanguageRuntime.h.

Constructor & Destructor Documentation

◆ ~ObjCLanguageRuntime()

ObjCLanguageRuntime::~ObjCLanguageRuntime ( )
overridedefault

◆ ObjCLanguageRuntime() [1/2]

◆ ObjCLanguageRuntime() [2/2]

lldb_private::ObjCLanguageRuntime::ObjCLanguageRuntime ( const ObjCLanguageRuntime & )
protecteddelete

References ObjCLanguageRuntime().

Member Function Documentation

◆ AddClass() [1/3]

bool lldb_private::ObjCLanguageRuntime::AddClass ( ObjCISA isa,
const ClassDescriptorSP & descriptor_sp )
inlineprotected

◆ AddClass() [2/3]

bool ObjCLanguageRuntime::AddClass ( ObjCISA isa,
const ClassDescriptorSP & descriptor_sp,
const char * class_name )
protected

Definition at line 52 of file ObjCLanguageRuntime.cpp.

References m_hash_to_isa_map, and m_isa_to_descriptor.

◆ AddClass() [3/3]

bool lldb_private::ObjCLanguageRuntime::AddClass ( ObjCISA isa,
const ClassDescriptorSP & descriptor_sp,
uint32_t class_name_hash )
inlineprotected

Definition at line 352 of file ObjCLanguageRuntime.h.

References m_hash_to_isa_map, and m_isa_to_descriptor.

◆ AddToClassNameCache() [1/2]

void lldb_private::ObjCLanguageRuntime::AddToClassNameCache ( lldb::addr_t class_addr,
const char * name,
lldb::TypeSP type_sp )

◆ AddToClassNameCache() [2/2]

void lldb_private::ObjCLanguageRuntime::AddToClassNameCache ( lldb::addr_t class_addr,
const TypeAndOrName & class_or_type_name )

◆ AddToMethodCache() [1/2]

void ObjCLanguageRuntime::AddToMethodCache ( lldb::addr_t class_addr,
lldb::addr_t sel,
lldb::addr_t impl_addr )

◆ AddToMethodCache() [2/2]

void ObjCLanguageRuntime::AddToMethodCache ( lldb::addr_t class_addr,
llvm::StringRef sel_str,
lldb::addr_t impl_addr )

◆ CalculateHasNewLiteralsAndIndexing()

virtual bool lldb_private::ObjCLanguageRuntime::CalculateHasNewLiteralsAndIndexing ( )
inlineprotectedvirtual

Reimplemented in lldb_private::AppleObjCRuntime.

Definition at line 335 of file ObjCLanguageRuntime.h.

Referenced by HasNewLiteralsAndIndexing().

◆ classof()

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

◆ CreateObjectChecker()

virtual llvm::Expected< std::unique_ptr< UtilityFunction > > lldb_private::ObjCLanguageRuntime::CreateObjectChecker ( std::string name,
ExecutionContext & exe_ctx )
pure virtual

◆ Get()

ObjCLanguageRuntime * lldb_private::ObjCLanguageRuntime::Get ( Process & process)
inlinestatic

Definition at line 222 of file ObjCLanguageRuntime.h.

References lldb::eLanguageTypeObjC, lldb_private::Process::GetLanguageRuntime(), and ObjCLanguageRuntime().

Referenced by lldb_private::DynamicLoaderDarwin::AlwaysRelyOnEHUnwindInfo(), lldb_private::formatters::CFBagSummaryProvider(), lldb_private::formatters::CFBinaryHeapSummaryProvider(), lldb_private::formatters::CFBitVectorSummaryProvider(), CommandObjectMultiwordObjC_TaggedPointer_Info::DoExecute(), CommandObjectObjC_ClassTable_Dump::DoExecute(), lldb_private::ClangASTSource::FindDeclInObjCRuntime(), lldb_private::ClangASTSource::FindObjCMethodDecls(), lldb_private::ClangASTSource::FindObjCPropertyAndIvarDecls(), lldb_private::TypeSystemClang::GetChildCompilerTypeAtIndex(), lldb_private::ClangASTSource::GetCompleteObjCInterface(), lldb_private::TypeSystemClang::GetObjCBitSize(), lldb_private::ObjCLanguage::GetPossibleFormattersMatches(), lldb_private::AppleObjCTrampolineHandler::GetStepThroughDispatchPlan(), lldb_private::ClangExpressionDeclMap::GetSymbolAddress(), lldb_private::ObjCLanguage::GetTypeScavenger(), lldb_private::AppleObjCTrampolineHandler::AppleObjCVTables::InitializeVTableSymbols(), lldb_private::ClangDynamicCheckerFunctions::Install(), lldb_private::formatters::NSArraySummaryProvider(), lldb_private::formatters::NSArraySyntheticFrontEndCreator(), lldb_private::formatters::NSBundleSummaryProvider(), lldb_private::formatters::NSDataSummaryProvider(), lldb_private::formatters::NSDateSummaryProvider(), lldb_private::formatters::NSDictionarySummaryProvider(), lldb_private::formatters::NSDictionarySyntheticFrontEndCreator(), lldb_private::formatters::NSErrorSyntheticFrontEndCreator(), lldb_private::formatters::NSExceptionSyntheticFrontEndCreator(), lldb_private::formatters::NSIndexSetSummaryProvider(), lldb_private::formatters::NSMachPortSummaryProvider(), lldb_private::formatters::NSNotificationSummaryProvider(), lldb_private::formatters::NSNumberSummaryProvider(), lldb_private::formatters::NSSetSummaryProvider(), lldb_private::formatters::NSSetSyntheticFrontEndCreator(), lldb_private::formatters::NSStringSummaryProvider(), lldb_private::formatters::NSTimeZoneSummaryProvider(), lldb_private::formatters::NSURLSummaryProvider(), lldb_private::formatters::ObjCBooleanSummaryProvider(), lldb_private::formatters::ObjCClassSummaryProvider(), SetupLangOpts(), lldb_private::AppleThreadPlanStepThroughObjCTrampoline::ShouldStop(), and NSIndexPathSyntheticFrontEnd::Update().

◆ GetBreakpointExceptionPrecondition()

lldb::BreakpointPreconditionSP ObjCLanguageRuntime::GetBreakpointExceptionPrecondition ( lldb::LanguageType language,
bool throw_bp )
static

◆ GetByteOffsetForIvar()

size_t ObjCLanguageRuntime::GetByteOffsetForIvar ( CompilerType & parent_qual_type,
const char * ivar_name )
virtual

◆ GetClassDescriptor()

ObjCLanguageRuntime::ClassDescriptorSP ObjCLanguageRuntime::GetClassDescriptor ( ValueObject & in_value)
virtual

Reimplemented in lldb_private::AppleObjCRuntimeV2.

Definition at line 267 of file ObjCLanguageRuntime.cpp.

References lldb_private::ValueObject::AddrAndType::address, error(), GetClassDescriptorFromISA(), lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::ValueObject::GetPointerValue(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::CompilerType::IsValid(), LLDB_INVALID_ADDRESS, and lldb_private::Process::ReadPointerFromMemory().

Referenced by lldb_private::formatters::CFBagSummaryProvider(), lldb_private::formatters::CFBinaryHeapSummaryProvider(), lldb_private::formatters::CFBitVectorSummaryProvider(), lldb_private::AppleObjCRuntimeV1::GetDynamicTypeAndAddress(), lldb_private::AppleObjCRuntime::GetExceptionObjectForThread(), GetNonKVOClassDescriptor(), lldb_private::ObjCLanguage::GetPossibleFormattersMatches(), lldb_private::formatters::NSArraySummaryProvider(), lldb_private::formatters::NSArraySyntheticFrontEndCreator(), lldb_private::formatters::NSBundleSummaryProvider(), lldb_private::formatters::NSDataSummaryProvider(), lldb_private::formatters::NSDateSummaryProvider(), lldb_private::formatters::NSDictionarySyntheticFrontEndCreator(), lldb_private::formatters::NSErrorSyntheticFrontEndCreator(), lldb_private::formatters::NSExceptionSyntheticFrontEndCreator(), lldb_private::formatters::NSIndexSetSummaryProvider(), lldb_private::formatters::NSMachPortSummaryProvider(), lldb_private::formatters::NSNotificationSummaryProvider(), lldb_private::formatters::NSNumberSummaryProvider(), lldb_private::formatters::NSSetSummaryProvider(), lldb_private::formatters::NSSetSyntheticFrontEndCreator(), lldb_private::formatters::NSStringSummaryProvider(), lldb_private::formatters::NSTimeZoneSummaryProvider(), lldb_private::formatters::NSURLSummaryProvider(), and NSIndexPathSyntheticFrontEnd::Update().

◆ GetClassDescriptorFromClassName()

ObjCLanguageRuntime::ClassDescriptorSP ObjCLanguageRuntime::GetClassDescriptorFromClassName ( ConstString class_name)
virtual

Definition at line 258 of file ObjCLanguageRuntime.cpp.

References GetDescriptorIterator(), and m_isa_to_descriptor.

Referenced by GetTypeBitSize().

◆ GetClassDescriptorFromISA()

◆ GetDescriptorIterator()

◆ GetDescriptorIteratorPair()

std::pair< ObjCLanguageRuntime::ISAToDescriptorIterator, ObjCLanguageRuntime::ISAToDescriptorIterator > ObjCLanguageRuntime::GetDescriptorIteratorPair ( bool update_if_needed = true)
protected

◆ GetEncodingToType()

ObjCLanguageRuntime::EncodingToTypeSP ObjCLanguageRuntime::GetEncodingToType ( )
virtual

Reimplemented in lldb_private::AppleObjCRuntimeV2.

Definition at line 349 of file ObjCLanguageRuntime.cpp.

◆ GetISA()

ObjCLanguageRuntime::ObjCISA ObjCLanguageRuntime::GetISA ( ConstString name)
virtual

Definition at line 178 of file ObjCLanguageRuntime.cpp.

References GetDescriptorIterator(), and m_isa_to_descriptor.

◆ GetLanguageType()

lldb::LanguageType lldb_private::ObjCLanguageRuntime::GetLanguageType ( ) const
inlineoverridevirtual

◆ GetNonKVOClassDescriptor() [1/2]

ObjCLanguageRuntime::ClassDescriptorSP ObjCLanguageRuntime::GetNonKVOClassDescriptor ( ObjCISA isa)

Definition at line 324 of file ObjCLanguageRuntime.cpp.

References GetClassDescriptorFromISA().

◆ GetNonKVOClassDescriptor() [2/2]

◆ GetParentClass()

ObjCLanguageRuntime::ObjCISA ObjCLanguageRuntime::GetParentClass ( ObjCLanguageRuntime::ObjCISA isa)
virtual

Definition at line 247 of file ObjCLanguageRuntime.cpp.

References GetClassDescriptorFromISA().

◆ GetRuntimeType()

◆ GetRuntimeVersion()

virtual ObjCRuntimeVersions lldb_private::ObjCLanguageRuntime::GetRuntimeVersion ( ) const
inlinevirtual

◆ GetTaggedPointerVendor()

virtual TaggedPointerVendor * lldb_private::ObjCLanguageRuntime::GetTaggedPointerVendor ( )
inlinevirtual

◆ GetTypeBitSize()

std::optional< uint64_t > ObjCLanguageRuntime::GetTypeBitSize ( const CompilerType & compiler_type)
overridevirtual

◆ HasNewLiteralsAndIndexing()

bool lldb_private::ObjCLanguageRuntime::HasNewLiteralsAndIndexing ( )
inline

◆ HasReadObjCLibrary()

virtual bool lldb_private::ObjCLanguageRuntime::HasReadObjCLibrary ( )
pure virtual

◆ isA()

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

◆ ISAIsCached()

bool lldb_private::ObjCLanguageRuntime::ISAIsCached ( ObjCISA isa) const
inlineprotected

◆ IsAllowedRuntimeValue()

bool ObjCLanguageRuntime::IsAllowedRuntimeValue ( ConstString name)
overridevirtual

Check whether the name is "self" or "_cmd" and should show up in "frame variable".

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 46 of file ObjCLanguageRuntime.cpp.

◆ IsModuleObjCLibrary()

virtual bool lldb_private::ObjCLanguageRuntime::IsModuleObjCLibrary ( const lldb::ModuleSP & module_sp)
pure virtual

◆ IsValidISA()

bool lldb_private::ObjCLanguageRuntime::IsValidISA ( ObjCISA isa)
inline

Definition at line 286 of file ObjCLanguageRuntime.h.

References m_isa_to_descriptor, and UpdateISAToDescriptorMap().

◆ LookupInClassNameCache()

TypeAndOrName lldb_private::ObjCLanguageRuntime::LookupInClassNameCache ( lldb::addr_t class_addr)

◆ LookupInCompleteClassCache()

◆ LookupInMethodCache() [1/2]

lldb::addr_t ObjCLanguageRuntime::LookupInMethodCache ( lldb::addr_t class_addr,
lldb::addr_t sel )

◆ LookupInMethodCache() [2/2]

lldb::addr_t ObjCLanguageRuntime::LookupInMethodCache ( lldb::addr_t class_addr,
llvm::StringRef sel_str )

Definition at line 99 of file ObjCLanguageRuntime.cpp.

References LLDB_INVALID_ADDRESS, and m_impl_str_cache.

◆ operator=()

const ObjCLanguageRuntime & lldb_private::ObjCLanguageRuntime::operator= ( const ObjCLanguageRuntime & )
protecteddelete

References ObjCLanguageRuntime().

◆ ReadObjCLibrary()

virtual bool lldb_private::ObjCLanguageRuntime::ReadObjCLibrary ( const lldb::ModuleSP & module_sp)
pure virtual

◆ ReadObjCLibraryIfNeeded()

◆ SymbolsDidLoad()

void lldb_private::ObjCLanguageRuntime::SymbolsDidLoad ( const ModuleList & module_list)
inlineoverridevirtual

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 320 of file ObjCLanguageRuntime.h.

References m_negative_complete_class_cache.

◆ UpdateISAToDescriptorMap()

void lldb_private::ObjCLanguageRuntime::UpdateISAToDescriptorMap ( )
inline

◆ UpdateISAToDescriptorMapIfNeeded()

virtual void lldb_private::ObjCLanguageRuntime::UpdateISAToDescriptorMapIfNeeded ( )
pure virtual

◆ ::CommandObjectObjC_ClassTable_Dump

Definition at line 459 of file ObjCLanguageRuntime.h.

Member Data Documentation

◆ ID

char ObjCLanguageRuntime::ID = 0
static

Definition at line 212 of file ObjCLanguageRuntime.h.

Referenced by classof(), and isA().

◆ m_complete_class_cache

CompleteClassMap lldb_private::ObjCLanguageRuntime::m_complete_class_cache
protected

Definition at line 439 of file ObjCLanguageRuntime.h.

Referenced by LookupInCompleteClassCache(), and ObjCLanguageRuntime().

◆ m_has_new_literals_and_indexing

LazyBool lldb_private::ObjCLanguageRuntime::m_has_new_literals_and_indexing
private

Definition at line 430 of file ObjCLanguageRuntime.h.

Referenced by HasNewLiteralsAndIndexing(), and ObjCLanguageRuntime().

◆ m_hash_to_isa_map

HashToISAMap lldb_private::ObjCLanguageRuntime::m_hash_to_isa_map
private

◆ m_impl_cache

MsgImplMap lldb_private::ObjCLanguageRuntime::m_impl_cache
private

◆ m_impl_str_cache

MsgImplStrMap lldb_private::ObjCLanguageRuntime::m_impl_str_cache
private

◆ m_isa_to_descriptor

◆ m_isa_to_descriptor_stop_id

uint32_t lldb_private::ObjCLanguageRuntime::m_isa_to_descriptor_stop_id
protected

◆ m_negative_complete_class_cache

CompleteClassSet lldb_private::ObjCLanguageRuntime::m_negative_complete_class_cache
protected

◆ m_type_size_cache

TypeSizeCache lldb_private::ObjCLanguageRuntime::m_type_size_cache
private

Definition at line 433 of file ObjCLanguageRuntime.h.

Referenced by GetTypeBitSize(), and ObjCLanguageRuntime().


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