LLDB
mainline
|
#include <AppleObjCClassDescriptorV2.h>
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 |
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... | |
bool | GetTaggedPointerInfoSigned (uint64_t *info_bits=nullptr, int64_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 |
![]() | |
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 () |
![]() | |
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 | |
AppleObjCRuntimeV2 & | m_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 |
Definition at line 21 of file AppleObjCClassDescriptorV2.h.
|
overridedefault |
|
inlineprivate |
Definition at line 223 of file AppleObjCClassDescriptorV2.h.
|
override |
Definition at line 373 of file AppleObjCClassDescriptorV2.cpp.
References lldb_private::ClassDescriptorV2::ivar_list_t::m_count, lldb_private::ClassDescriptorV2::ivar_list_t::m_entsize, lldb_private::ClassDescriptorV2::ivar_list_t::m_first_ptr, lldb_private::ClassDescriptorV2::ivar_t::m_name, lldb_private::ClassDescriptorV2::ivar_t::m_offset_ptr, lldb_private::ClassDescriptorV2::ivar_t::m_size, lldb_private::ClassDescriptorV2::ivar_t::m_type, lldb_private::ClassDescriptorV2::ivar_list_t::Read(), and lldb_private::ClassDescriptorV2::ivar_t::Read().
Referenced by lldb_private::ClassDescriptorV2::iVarsStorage::fill().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 462 of file AppleObjCClassDescriptorV2.cpp.
Referenced by lldb_private::ClassDescriptorV2::iVarsStorage::fill().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 514 of file AppleObjCClassDescriptorV2.cpp.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 52 of file AppleObjCClassDescriptorV2.h.
References m_objc_class_ptr.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 67 of file AppleObjCClassDescriptorV2.h.
References GetNumIVars(), and m_ivars_storage.
|
protected |
Definition at line 592 of file AppleObjCClassDescriptorV2.cpp.
References lldb_private::ClassDescriptorV2::iVarsStorage::fill(), m_ivars_storage, and m_runtime.
Referenced by GetNumIVars().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 497 of file AppleObjCClassDescriptorV2.cpp.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 62 of file AppleObjCClassDescriptorV2.h.
References GetIVarInformation(), m_ivars_storage, and lldb_private::ClassDescriptorV2::iVarsStorage::size().
Referenced by GetIVarAtIndex().
|
overridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 482 of file AppleObjCClassDescriptorV2.cpp.
|
inlineoverridevirtual |
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.
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 38 of file AppleObjCClassDescriptorV2.h.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 44 of file AppleObjCClassDescriptorV2.h.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 33 of file AppleObjCClassDescriptorV2.h.
|
private |
Definition at line 197 of file AppleObjCClassDescriptorV2.cpp.
References error(), lldb_private::ClassDescriptorV2::objc_class_t::m_data_ptr, and lldb_private::Process::ReadUnsignedIntegerFromMemory().
|
private |
Definition at line 19 of file AppleObjCClassDescriptorV2.cpp.
|
friend |
Definition at line 23 of file AppleObjCClassDescriptorV2.h.
|
private |
Definition at line 241 of file AppleObjCClassDescriptorV2.h.
Referenced by GetIVarAtIndex(), GetIVarInformation(), and GetNumIVars().
|
private |
Definition at line 240 of file AppleObjCClassDescriptorV2.h.
|
private |
Definition at line 237 of file AppleObjCClassDescriptorV2.h.
Referenced by GetISA().
|
private |
Definition at line 236 of file AppleObjCClassDescriptorV2.h.
Referenced by GetIVarInformation().
|
staticprivate |
Definition at line 77 of file AppleObjCClassDescriptorV2.h.