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]
Collaboration diagram for lldb_private::ObjCLanguageRuntime::ClassDescriptor:
Collaboration 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 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. More...
 
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 50 of file ObjCLanguageRuntime.h.

Constructor & Destructor Documentation

◆ ClassDescriptor()

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

Definition at line 52 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 105 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 113 of file ObjCLanguageRuntime.h.

◆ GetClassName()

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

◆ 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 136 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 134 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::ClassDescriptorV2Tagged, lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1, and lldb_private::ClassDescriptorV2.

◆ 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 123 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 148 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 125 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 147 of file ObjCLanguageRuntime.h.

Referenced by IsCFType().

◆ m_is_kvo

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

Definition at line 146 of file ObjCLanguageRuntime.h.

Referenced by IsKVO().

◆ m_type_wp

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

Definition at line 148 of file ObjCLanguageRuntime.h.

Referenced by GetType(), and SetType().


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