LLDB mainline
Public Member Functions | Private Attributes | List of all members
lldb_private::ClassDescriptorV2Tagged Class Reference

#include <AppleObjCClassDescriptorV2.h>

Inheritance diagram for lldb_private::ClassDescriptorV2Tagged:
Inheritance graph
[legend]

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
 

Detailed Description

Definition at line 281 of file AppleObjCClassDescriptorV2.h.

Constructor & Destructor Documentation

◆ ClassDescriptorV2Tagged() [1/2]

lldb_private::ClassDescriptorV2Tagged::ClassDescriptorV2Tagged ( ConstString  class_name,
uint64_t  payload 
)
inline

Definition at line 283 of file AppleObjCClassDescriptorV2.h.

References m_info_bits, m_name, m_payload, m_valid, and m_value_bits.

◆ ClassDescriptorV2Tagged() [2/2]

lldb_private::ClassDescriptorV2Tagged::ClassDescriptorV2Tagged ( ObjCLanguageRuntime::ClassDescriptorSP  actual_class_sp,
uint64_t  u_payload,
int64_t  s_payload 
)
inline

◆ ~ClassDescriptorV2Tagged()

lldb_private::ClassDescriptorV2Tagged::~ClassDescriptorV2Tagged ( )
overridedefault

Member Function Documentation

◆ GetClassName()

ConstString lldb_private::ClassDescriptorV2Tagged::GetClassName ( )
inlineoverridevirtual

◆ GetInfoBits()

virtual uint64_t lldb_private::ClassDescriptorV2Tagged::GetInfoBits ( )
inlinevirtual

Definition at line 380 of file AppleObjCClassDescriptorV2.h.

References IsValid(), and m_info_bits.

Referenced by GetTaggedPointerInfo(), and GetTaggedPointerInfoSigned().

◆ GetInstanceSize()

uint64_t lldb_private::ClassDescriptorV2Tagged::GetInstanceSize ( )
inlineoverridevirtual

◆ GetISA()

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

◆ GetMetaclass()

ObjCLanguageRuntime::ClassDescriptorSP lldb_private::ClassDescriptorV2Tagged::GetMetaclass ( ) const
inlineoverridevirtual

◆ GetPayload()

virtual uint64_t lldb_private::ClassDescriptorV2Tagged::GetPayload ( )
inlinevirtual

Definition at line 382 of file AppleObjCClassDescriptorV2.h.

References IsValid(), and m_payload.

Referenced by GetTaggedPointerInfo(), and GetTaggedPointerInfoSigned().

◆ GetSuperclass()

ObjCLanguageRuntime::ClassDescriptorSP lldb_private::ClassDescriptorV2Tagged::GetSuperclass ( )
inlineoverridevirtual

◆ GetTaggedPointerInfo()

bool lldb_private::ClassDescriptorV2Tagged::GetTaggedPointerInfo ( uint64_t *  info_bits = nullptr,
uint64_t *  value_bits = nullptr,
uint64_t *  payload = nullptr 
)
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().

◆ GetTaggedPointerInfoSigned()

bool lldb_private::ClassDescriptorV2Tagged::GetTaggedPointerInfoSigned ( uint64_t *  info_bits = nullptr,
int64_t *  value_bits = nullptr,
uint64_t *  payload = nullptr 
)
inlineoverridevirtual

◆ GetValueBits()

virtual uint64_t lldb_private::ClassDescriptorV2Tagged::GetValueBits ( )
inlinevirtual

Definition at line 374 of file AppleObjCClassDescriptorV2.h.

References IsValid(), and m_value_bits.

Referenced by GetTaggedPointerInfo().

◆ GetValueBitsSigned()

virtual int64_t lldb_private::ClassDescriptorV2Tagged::GetValueBitsSigned ( )
inlinevirtual

Definition at line 376 of file AppleObjCClassDescriptorV2.h.

References IsValid(), and m_value_bits_signed.

Referenced by GetTaggedPointerInfoSigned().

◆ IsCFType()

bool lldb_private::ClassDescriptorV2Tagged::IsCFType ( )
inlineoverridevirtual

◆ IsKVO()

bool lldb_private::ClassDescriptorV2Tagged::IsKVO ( )
inlineoverridevirtual

◆ IsValid()

bool lldb_private::ClassDescriptorV2Tagged::IsValid ( )
inlineoverridevirtual

Member Data Documentation

◆ m_info_bits

uint64_t lldb_private::ClassDescriptorV2Tagged::m_info_bits = 0
private

Definition at line 388 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and GetInfoBits().

◆ m_name

ConstString lldb_private::ClassDescriptorV2Tagged::m_name
private

Definition at line 385 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and GetClassName().

◆ m_payload

uint64_t lldb_private::ClassDescriptorV2Tagged::m_payload = 0
private

Definition at line 391 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and GetPayload().

◆ m_pointer_size

uint8_t lldb_private::ClassDescriptorV2Tagged::m_pointer_size = 0
private

Definition at line 386 of file AppleObjCClassDescriptorV2.h.

Referenced by GetInstanceSize().

◆ m_valid

bool lldb_private::ClassDescriptorV2Tagged::m_valid = false
private

Definition at line 387 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and IsValid().

◆ m_value_bits

uint64_t lldb_private::ClassDescriptorV2Tagged::m_value_bits = 0
private

Definition at line 389 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and GetValueBits().

◆ m_value_bits_signed

int64_t lldb_private::ClassDescriptorV2Tagged::m_value_bits_signed = 0
private

Definition at line 390 of file AppleObjCClassDescriptorV2.h.

Referenced by ClassDescriptorV2Tagged(), and GetValueBitsSigned().


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