LLDB mainline
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
lldb_private::ObjCLanguageRuntime::ClassDescriptor Class Referenceabstract

#include <ObjCLanguageRuntime.h>

Inheritance diagram for lldb_private::ObjCLanguageRuntime::ClassDescriptor:
Inheritance graph
[legend]

Classes

struct  iVarDescriptor
 

Public Member Functions

 ClassDescriptor ()
 
virtual ~ClassDescriptor ()=default
 
virtual ConstString GetClassName ()=0
 
virtual ClassDescriptorSP GetSuperclass ()=0
 
virtual ClassDescriptorSP GetMetaclass () const =0
 
virtual bool IsKVO ()
 
virtual bool IsCFType ()
 
virtual lldb::LanguageType GetImplementationLanguage () const
 Determine whether this class is implemented in Swift.
 
virtual bool IsValid ()=0
 
virtual uint64_t GetInstanceSize ()=0
 
virtual bool CheckPointer (lldb::addr_t value, uint32_t ptr_size) const
 
virtual ObjCISA GetISA ()=0
 
virtual bool Describe (std::function< void(ObjCISA)> const &superclass_func, std::function< bool(const char *, const char *)> const &instance_method_func, std::function< bool(const char *, const char *)> const &class_method_func, std::function< bool(const char *, const char *, lldb::addr_t, uint64_t)> const &ivar_func) const
 
lldb::TypeSP GetType ()
 
void SetType (const lldb::TypeSP &type_sp)
 
virtual size_t GetNumIVars ()
 
virtual iVarDescriptor GetIVarAtIndex (size_t idx)
 
virtual bool GetTaggedPointerInfo (uint64_t *info_bits=nullptr, uint64_t *value_bits=nullptr, uint64_t *payload=nullptr)=0
 There are two routines in the ObjC runtime that tagged pointer clients can call to get the value from their tagged pointer, one that retrieves it as an unsigned value and one a signed value.
 
virtual bool GetTaggedPointerInfoSigned (uint64_t *info_bits=nullptr, int64_t *value_bits=nullptr, uint64_t *payload=nullptr)=0
 

Protected Member Functions

bool IsPointerValid (lldb::addr_t value, uint32_t ptr_size, bool allow_NULLs=false, bool allow_tagged=false, bool check_version_specific=false) const
 

Private Attributes

LazyBool m_is_kvo = eLazyBoolCalculate
 
LazyBool m_is_cf = eLazyBoolCalculate
 
lldb::TypeWP m_type_wp
 

Detailed Description

Definition at line 54 of file ObjCLanguageRuntime.h.

Constructor & Destructor Documentation

◆ ClassDescriptor()

lldb_private::ObjCLanguageRuntime::ClassDescriptor::ClassDescriptor ( )
inline

Definition at line 56 of file ObjCLanguageRuntime.h.

◆ ~ClassDescriptor()

virtual lldb_private::ObjCLanguageRuntime::ClassDescriptor::~ClassDescriptor ( )
virtualdefault

Member Function Documentation

◆ CheckPointer()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::CheckPointer ( lldb::addr_t  value,
uint32_t  ptr_size 
) const
inlinevirtual

Definition at line 114 of file ObjCLanguageRuntime.h.

Referenced by IsPointerValid().

◆ Describe()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::Describe ( std::function< void(ObjCISA)> const &  superclass_func,
std::function< bool(const char *, const char *)> const &  instance_method_func,
std::function< bool(const char *, const char *)> const &  class_method_func,
std::function< bool(const char *, const char *, lldb::addr_t, uint64_t)> const &  ivar_func 
) const
inlinevirtual

Definition at line 122 of file ObjCLanguageRuntime.h.

◆ GetClassName()

virtual ConstString lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetClassName ( )
pure virtual

◆ GetImplementationLanguage()

virtual lldb::LanguageType lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetImplementationLanguage ( ) const
inlinevirtual

Determine whether this class is implemented in Swift.

Reimplemented in lldb_private::ClassDescriptorV2.

Definition at line 91 of file ObjCLanguageRuntime.h.

References lldb::eLanguageTypeObjC.

◆ GetInstanceSize()

virtual uint64_t lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetInstanceSize ( )
pure virtual

◆ GetISA()

virtual ObjCISA lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetISA ( )
pure virtual

◆ GetIVarAtIndex()

virtual iVarDescriptor lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetIVarAtIndex ( size_t  idx)
inlinevirtual

Reimplemented in lldb_private::ClassDescriptorV2.

Definition at line 145 of file ObjCLanguageRuntime.h.

◆ GetMetaclass()

virtual ClassDescriptorSP lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetMetaclass ( ) const
pure virtual

◆ GetNumIVars()

virtual size_t lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetNumIVars ( )
inlinevirtual

Reimplemented in lldb_private::ClassDescriptorV2.

Definition at line 143 of file ObjCLanguageRuntime.h.

◆ GetSuperclass()

virtual ClassDescriptorSP lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetSuperclass ( )
pure virtual

◆ GetTaggedPointerInfo()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetTaggedPointerInfo ( uint64_t *  info_bits = nullptr,
uint64_t *  value_bits = nullptr,
uint64_t *  payload = nullptr 
)
pure virtual

There are two routines in the ObjC runtime that tagged pointer clients can call to get the value from their tagged pointer, one that retrieves it as an unsigned value and one a signed value.

These two GetTaggedPointerInfo methods mirror those two ObjC runtime calls.

Implemented in lldb_private::ClassDescriptorV2, lldb_private::ClassDescriptorV2Tagged, and lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1.

◆ GetTaggedPointerInfoSigned()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetTaggedPointerInfoSigned ( uint64_t *  info_bits = nullptr,
int64_t *  value_bits = nullptr,
uint64_t *  payload = nullptr 
)
pure virtual

◆ GetType()

lldb::TypeSP lldb_private::ObjCLanguageRuntime::ClassDescriptor::GetType ( )
inline

Definition at line 132 of file ObjCLanguageRuntime.h.

References m_type_wp.

◆ IsCFType()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::IsCFType ( )
inlinevirtual

◆ IsKVO()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::IsKVO ( )
inlinevirtual

◆ IsPointerValid()

bool ObjCLanguageRuntime::ClassDescriptor::IsPointerValid ( lldb::addr_t  value,
uint32_t  ptr_size,
bool  allow_NULLs = false,
bool  allow_tagged = false,
bool  check_version_specific = false 
) const
protected

Definition at line 164 of file ObjCLanguageRuntime.cpp.

References CheckPointer().

◆ IsValid()

virtual bool lldb_private::ObjCLanguageRuntime::ClassDescriptor::IsValid ( )
pure virtual

◆ SetType()

void lldb_private::ObjCLanguageRuntime::ClassDescriptor::SetType ( const lldb::TypeSP type_sp)
inline

Definition at line 134 of file ObjCLanguageRuntime.h.

References m_type_wp.

Member Data Documentation

◆ m_is_cf

LazyBool lldb_private::ObjCLanguageRuntime::ClassDescriptor::m_is_cf = eLazyBoolCalculate
private

Definition at line 156 of file ObjCLanguageRuntime.h.

Referenced by IsCFType().

◆ m_is_kvo

LazyBool lldb_private::ObjCLanguageRuntime::ClassDescriptor::m_is_kvo = eLazyBoolCalculate
private

Definition at line 155 of file ObjCLanguageRuntime.h.

Referenced by IsKVO().

◆ m_type_wp

lldb::TypeWP lldb_private::ObjCLanguageRuntime::ClassDescriptor::m_type_wp
private

Definition at line 157 of file ObjCLanguageRuntime.h.

Referenced by GetType(), and SetType().


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