LLDB mainline
|
#include <AppleObjCClassDescriptorV2.h>
Public Member Functions | |
ClassDescriptorV2Tagged (ConstString class_name, uint64_t payload) | |
ClassDescriptorV2Tagged (ObjCLanguageRuntime::ClassDescriptorSP actual_class_sp, uint64_t u_payload, int64_t s_payload) | |
~ClassDescriptorV2Tagged () override=default | |
ConstString | GetClassName () override |
ObjCLanguageRuntime::ClassDescriptorSP | GetSuperclass () override |
ObjCLanguageRuntime::ClassDescriptorSP | GetMetaclass () const override |
bool | IsValid () override |
bool | IsKVO () override |
bool | IsCFType () 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. | |
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 |
virtual uint64_t | GetValueBits () |
virtual int64_t | GetValueBitsSigned () |
virtual uint64_t | GetInfoBits () |
virtual uint64_t | GetPayload () |
Public Member Functions inherited from lldb_private::ObjCLanguageRuntime::ClassDescriptor | |
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) |
Private Attributes | |
ConstString | m_name |
uint8_t | m_pointer_size = 0 |
bool | m_valid = false |
uint64_t | m_info_bits = 0 |
uint64_t | m_value_bits = 0 |
int64_t | m_value_bits_signed = 0 |
uint64_t | m_payload = 0 |
Additional Inherited Members | |
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 |
Definition at line 281 of file AppleObjCClassDescriptorV2.h.
|
inline |
Definition at line 283 of file AppleObjCClassDescriptorV2.h.
References m_info_bits, m_name, m_payload, m_valid, and m_value_bits.
|
inline |
Definition at line 295 of file AppleObjCClassDescriptorV2.h.
References m_info_bits, m_name, m_payload, m_valid, m_value_bits, and m_value_bits_signed.
|
overridedefault |
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 316 of file AppleObjCClassDescriptorV2.h.
References m_name.
|
inlinevirtual |
Definition at line 380 of file AppleObjCClassDescriptorV2.h.
References IsValid(), and m_info_bits.
Referenced by GetTaggedPointerInfo(), and GetTaggedPointerInfoSigned().
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 365 of file AppleObjCClassDescriptorV2.h.
References IsValid(), and m_pointer_size.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 369 of file AppleObjCClassDescriptorV2.h.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 327 of file AppleObjCClassDescriptorV2.h.
|
inlinevirtual |
Definition at line 382 of file AppleObjCClassDescriptorV2.h.
References IsValid(), and m_payload.
Referenced by GetTaggedPointerInfo(), and GetTaggedPointerInfoSigned().
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 318 of file AppleObjCClassDescriptorV2.h.
|
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 341 of file AppleObjCClassDescriptorV2.h.
References GetInfoBits(), GetPayload(), and GetValueBits().
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 353 of file AppleObjCClassDescriptorV2.h.
References GetInfoBits(), GetPayload(), and GetValueBitsSigned().
|
inlinevirtual |
Definition at line 374 of file AppleObjCClassDescriptorV2.h.
References IsValid(), and m_value_bits.
Referenced by GetTaggedPointerInfo().
|
inlinevirtual |
Definition at line 376 of file AppleObjCClassDescriptorV2.h.
References IsValid(), and m_value_bits_signed.
Referenced by GetTaggedPointerInfoSigned().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 337 of file AppleObjCClassDescriptorV2.h.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 333 of file AppleObjCClassDescriptorV2.h.
|
inlineoverridevirtual |
Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.
Definition at line 331 of file AppleObjCClassDescriptorV2.h.
References m_valid.
Referenced by GetInfoBits(), GetInstanceSize(), GetPayload(), GetValueBits(), and GetValueBitsSigned().
|
private |
Definition at line 388 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and GetInfoBits().
|
private |
Definition at line 385 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and GetClassName().
|
private |
Definition at line 391 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and GetPayload().
|
private |
Definition at line 386 of file AppleObjCClassDescriptorV2.h.
Referenced by GetInstanceSize().
|
private |
Definition at line 387 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and IsValid().
|
private |
Definition at line 389 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and GetValueBits().
|
private |
Definition at line 390 of file AppleObjCClassDescriptorV2.h.
Referenced by ClassDescriptorV2Tagged(), and GetValueBitsSigned().