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

#include <AppleObjCClassDescriptorV2.h>

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

Classes

struct  class_ro_t
 
struct  class_rw_t
 
struct  ivar_list_t
 
struct  ivar_t
 
class  iVarsStorage
 
struct  method_list_t
 
struct  method_t
 
struct  objc_class_t
 

Public Member Functions

 ~ClassDescriptorV2 () override=default
 
ConstString GetClassName () override
 
ObjCLanguageRuntime::ClassDescriptorSP GetSuperclass () override
 
ObjCLanguageRuntime::ClassDescriptorSP GetMetaclass () const override
 
bool IsValid () override
 
bool GetTaggedPointerInfo (uint64_t *info_bits=nullptr, uint64_t *value_bits=nullptr, uint64_t *payload=nullptr) override
 
uint64_t GetInstanceSize () override
 
ObjCLanguageRuntime::ObjCISA GetISA () override
 
bool Describe (std::function< void(ObjCLanguageRuntime::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 override
 
size_t GetNumIVars () override
 
iVarDescriptor GetIVarAtIndex (size_t idx) override
 
- Public Member Functions inherited from lldb_private::ObjCLanguageRuntime::ClassDescriptor
 ClassDescriptor ()
 
virtual ~ClassDescriptor ()=default
 
virtual bool IsKVO ()
 
virtual bool IsCFType ()
 
virtual bool CheckPointer (lldb::addr_t value, uint32_t ptr_size) const
 
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)
 

Protected Member Functions

void GetIVarInformation ()
 
- Protected Member Functions inherited from lldb_private::ObjCLanguageRuntime::ClassDescriptor
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 Member Functions

 ClassDescriptorV2 (AppleObjCRuntimeV2 &runtime, ObjCLanguageRuntime::ObjCISA isa, const char *name)
 
bool Read_objc_class (Process *process, std::unique_ptr< objc_class_t > &objc_class) const
 
bool Read_class_row (Process *process, const objc_class_t &objc_class, std::unique_ptr< class_ro_t > &class_ro, std::unique_ptr< class_rw_t > &class_rw) const
 

Private Attributes

AppleObjCRuntimeV2m_runtime
 
lldb::addr_t m_objc_class_ptr
 
ConstString m_name
 
iVarsStorage m_ivars_storage
 

Static Private Attributes

static const uint32_t RW_REALIZED = (1 << 31)
 

Friends

class lldb_private::AppleObjCRuntimeV2
 

Detailed Description

Definition at line 21 of file AppleObjCClassDescriptorV2.h.

Constructor & Destructor Documentation

◆ ~ClassDescriptorV2()

lldb_private::ClassDescriptorV2::~ClassDescriptorV2 ( )
overridedefault

◆ ClassDescriptorV2()

lldb_private::ClassDescriptorV2::ClassDescriptorV2 ( AppleObjCRuntimeV2 runtime,
ObjCLanguageRuntime::ObjCISA  isa,
const char *  name 
)
inlineprivate

Definition at line 212 of file AppleObjCClassDescriptorV2.h.

References Read_class_row(), and Read_objc_class().

Member Function Documentation

◆ Describe()

bool ClassDescriptorV2::Describe ( std::function< void(ObjCLanguageRuntime::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
override

◆ GetClassName()

ConstString ClassDescriptorV2::GetClassName ( )
overridevirtual

◆ GetInstanceSize()

uint64_t ClassDescriptorV2::GetInstanceSize ( )
overridevirtual

◆ GetISA()

ObjCLanguageRuntime::ObjCISA lldb_private::ClassDescriptorV2::GetISA ( )
inlineoverridevirtual

◆ GetIVarAtIndex()

iVarDescriptor lldb_private::ClassDescriptorV2::GetIVarAtIndex ( size_t  idx)
inlineoverridevirtual

◆ GetIVarInformation()

void ClassDescriptorV2::GetIVarInformation ( )
protected

◆ GetMetaclass()

ObjCLanguageRuntime::ClassDescriptorSP ClassDescriptorV2::GetMetaclass ( ) const
overridevirtual

◆ GetNumIVars()

size_t lldb_private::ClassDescriptorV2::GetNumIVars ( )
inlineoverridevirtual

◆ GetSuperclass()

ObjCLanguageRuntime::ClassDescriptorSP ClassDescriptorV2::GetSuperclass ( )
overridevirtual

◆ GetTaggedPointerInfo()

bool lldb_private::ClassDescriptorV2::GetTaggedPointerInfo ( uint64_t *  info_bits = nullptr,
uint64_t *  value_bits = nullptr,
uint64_t *  payload = nullptr 
)
inlineoverridevirtual

◆ IsValid()

bool lldb_private::ClassDescriptorV2::IsValid ( )
inlineoverridevirtual

◆ Read_class_row()

bool ClassDescriptorV2::Read_class_row ( Process process,
const objc_class_t objc_class,
std::unique_ptr< class_ro_t > &  class_ro,
std::unique_ptr< class_rw_t > &  class_rw 
) const
private

◆ Read_objc_class()

bool ClassDescriptorV2::Read_objc_class ( Process process,
std::unique_ptr< objc_class_t > &  objc_class 
) const
private

Definition at line 17 of file AppleObjCClassDescriptorV2.cpp.

Referenced by ClassDescriptorV2().

Friends And Related Function Documentation

◆ lldb_private::AppleObjCRuntimeV2

friend class lldb_private::AppleObjCRuntimeV2
friend

Definition at line 23 of file AppleObjCClassDescriptorV2.h.

Member Data Documentation

◆ m_ivars_storage

iVarsStorage lldb_private::ClassDescriptorV2::m_ivars_storage
private

Definition at line 230 of file AppleObjCClassDescriptorV2.h.

Referenced by GetIVarAtIndex(), GetIVarInformation(), and GetNumIVars().

◆ m_name

ConstString lldb_private::ClassDescriptorV2::m_name
private

◆ m_objc_class_ptr

lldb::addr_t lldb_private::ClassDescriptorV2::m_objc_class_ptr
private

Definition at line 226 of file AppleObjCClassDescriptorV2.h.

Referenced by GetISA().

◆ m_runtime

AppleObjCRuntimeV2& lldb_private::ClassDescriptorV2::m_runtime
private

Definition at line 225 of file AppleObjCClassDescriptorV2.h.

Referenced by GetIVarInformation().

◆ RW_REALIZED

const uint32_t lldb_private::ClassDescriptorV2::RW_REALIZED = (1 << 31)
staticprivate

Definition at line 71 of file AppleObjCClassDescriptorV2.h.


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