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
struct  IdentityHashKeyInfo
 Keys are already djbHash values, so use identity as the hash function. More...
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 llvm::DenseMap< ObjCISA, ClassDescriptorSPISAToDescriptorMap
typedef llvm::SmallVector< ObjCISA, 2 > ISAVector
typedef llvm::DenseMap< uint32_t, ISAVector, IdentityHashKeyInfoHashToISAMap
typedef ISAToDescriptorMap::iterator ISAToDescriptorIterator
typedef ThreadSafeDenseMap< void *, uint64_t > TypeSizeCache

Private Member Functions

CompilerType LookupInRuntime (ConstString class_name)
CompilerType LookupInModulesVendor (ConstString class_name, Target &process)

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 39 of file ObjCLanguageRuntime.h.

Member Typedef Documentation

◆ ClassDescriptorSP

◆ CompleteClassMap

◆ CompleteClassSet

◆ EncodingToTypeSP

◆ HashToISAMap

Definition at line 434 of file ObjCLanguageRuntime.h.

◆ ISAToDescriptorIterator

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

Definition at line 435 of file ObjCLanguageRuntime.h.

◆ ISAToDescriptorMap

◆ ISAVector

typedef llvm::SmallVector<ObjCISA, 2> lldb_private::ObjCLanguageRuntime::ISAVector
private

Definition at line 433 of file ObjCLanguageRuntime.h.

◆ MsgImplMap

◆ MsgImplStrMap

◆ ObjCISA

◆ TypeSizeCache

Definition at line 436 of file ObjCLanguageRuntime.h.

Member Enumeration Documentation

◆ ObjCRuntimeVersions

Enumerator
eObjC_VersionUnknown 
eAppleObjC_V1 
eAppleObjC_V2 
eGNUstep_libobjc2 

Definition at line 41 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 AddClass().

◆ AddClass() [3/3]

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

Definition at line 354 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 337 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 224 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::NSBundleSummaryProvider(), lldb_private::formatters::NSDataSummaryProvider(), lldb_private::formatters::NSDateSummaryProvider(), lldb_private::formatters::NSDictionarySummaryProvider(), lldb_private::formatters::NSIndexSetSummaryProvider(), lldb_private::formatters::NSMachPortSummaryProvider(), lldb_private::formatters::NSNotificationSummaryProvider(), lldb_private::formatters::NSNumberSummaryProvider(), lldb_private::formatters::NSSetSummaryProvider(), 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 257 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::NSBundleSummaryProvider(), lldb_private::formatters::NSDataSummaryProvider(), lldb_private::formatters::NSDateSummaryProvider(), lldb_private::formatters::NSIndexSetSummaryProvider(), lldb_private::formatters::NSMachPortSummaryProvider(), lldb_private::formatters::NSNotificationSummaryProvider(), lldb_private::formatters::NSNumberSummaryProvider(), lldb_private::formatters::NSSetSummaryProvider(), 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 248 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 339 of file ObjCLanguageRuntime.cpp.

◆ GetISA()

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

Definition at line 170 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 314 of file ObjCLanguageRuntime.cpp.

References GetClassDescriptorFromISA().

◆ GetNonKVOClassDescriptor() [2/2]

◆ GetParentClass()

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

Definition at line 237 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 288 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 91 of file ObjCLanguageRuntime.cpp.

References LLDB_INVALID_ADDRESS, and m_impl_str_cache.

◆ LookupInModulesVendor()

CompilerType ObjCLanguageRuntime::LookupInModulesVendor ( ConstString class_name,
Target & process )
private

◆ LookupInRuntime()

CompilerType ObjCLanguageRuntime::LookupInRuntime ( ConstString class_name)
private

Definition at line 438 of file ObjCLanguageRuntime.cpp.

References lldb_private::LanguageRuntime::GetDeclVendor(), and UINT32_MAX.

Referenced by GetRuntimeType().

◆ 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 322 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 469 of file ObjCLanguageRuntime.h.

Member Data Documentation

◆ ID

char ObjCLanguageRuntime::ID = 0
static

Definition at line 214 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 449 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 440 of file ObjCLanguageRuntime.h.

Referenced by HasNewLiteralsAndIndexing(), and ObjCLanguageRuntime().

◆ m_hash_to_isa_map

HashToISAMap lldb_private::ObjCLanguageRuntime::m_hash_to_isa_map
private

Definition at line 442 of file ObjCLanguageRuntime.h.

Referenced by AddClass(), GetDescriptorIterator(), and ObjCLanguageRuntime().

◆ 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 443 of file ObjCLanguageRuntime.h.

Referenced by GetTypeBitSize(), and ObjCLanguageRuntime().


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