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

#include <AppleObjCRuntimeV1.h>

Inheritance diagram for lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1:
Inheritance graph
[legend]

Public Member Functions

 ClassDescriptorV1 (ValueObject &isa_pointer)
 
 ClassDescriptorV1 (ObjCISA isa, lldb::ProcessSP process_sp)
 
 ~ClassDescriptorV1 () override=default
 
ConstString GetClassName () override
 
ClassDescriptorSP GetSuperclass () override
 
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.
 
bool GetTaggedPointerInfoSigned (uint64_t *info_bits=nullptr, int64_t *value_bits=nullptr, uint64_t *payload=nullptr) override
 
uint64_t GetInstanceSize () override
 
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
 
- 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)
 

Protected Member Functions

void Initialize (ObjCISA isa, lldb::ProcessSP process_sp)
 
- 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 Attributes

ConstString m_name
 
ObjCISA m_isa
 
ObjCISA m_parent_isa
 
bool m_valid
 
lldb::ProcessWP m_process_wp
 
uint64_t m_instance_size
 

Detailed Description

Definition at line 45 of file AppleObjCRuntimeV1.h.

Constructor & Destructor Documentation

◆ ClassDescriptorV1() [1/2]

AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1 ( ValueObject isa_pointer)

◆ ClassDescriptorV1() [2/2]

AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1 ( ObjCISA  isa,
lldb::ProcessSP  process_sp 
)

◆ ~ClassDescriptorV1()

lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::~ClassDescriptorV1 ( )
overridedefault

Member Function Documentation

◆ Describe()

bool AppleObjCRuntimeV1::ClassDescriptorV1::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

Definition at line 267 of file AppleObjCRuntimeV1.cpp.

◆ GetClassName()

ConstString lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::GetClassName ( )
inlineoverridevirtual

Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.

Definition at line 52 of file AppleObjCRuntimeV1.h.

References m_name.

◆ GetInstanceSize()

uint64_t lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::GetInstanceSize ( )
inlineoverridevirtual

◆ GetISA()

ObjCISA lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::GetISA ( )
inlineoverridevirtual

Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.

Definition at line 75 of file AppleObjCRuntimeV1.h.

References m_isa.

◆ GetMetaclass()

AppleObjCRuntime::ClassDescriptorSP AppleObjCRuntimeV1::ClassDescriptorV1::GetMetaclass ( ) const
overridevirtual

◆ GetSuperclass()

AppleObjCRuntime::ClassDescriptorSP AppleObjCRuntimeV1::ClassDescriptorV1::GetSuperclass ( )
overridevirtual

◆ GetTaggedPointerInfo()

bool lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::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 61 of file AppleObjCRuntimeV1.h.

◆ GetTaggedPointerInfoSigned()

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

◆ Initialize()

void AppleObjCRuntimeV1::ClassDescriptorV1::Initialize ( ObjCISA  isa,
lldb::ProcessSP  process_sp 
)
protected

Definition at line 180 of file AppleObjCRuntimeV1.cpp.

References error().

◆ IsValid()

bool lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::IsValid ( )
inlineoverridevirtual

Implements lldb_private::ObjCLanguageRuntime::ClassDescriptor.

Definition at line 58 of file AppleObjCRuntimeV1.h.

References m_valid.

Member Data Documentation

◆ m_instance_size

uint64_t lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_instance_size
private

Definition at line 96 of file AppleObjCRuntimeV1.h.

Referenced by GetInstanceSize().

◆ m_isa

ObjCISA lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_isa
private

Definition at line 92 of file AppleObjCRuntimeV1.h.

Referenced by GetISA().

◆ m_name

ConstString lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_name
private

Definition at line 91 of file AppleObjCRuntimeV1.h.

Referenced by GetClassName().

◆ m_parent_isa

ObjCISA lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_parent_isa
private

Definition at line 93 of file AppleObjCRuntimeV1.h.

◆ m_process_wp

lldb::ProcessWP lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_process_wp
private

Definition at line 95 of file AppleObjCRuntimeV1.h.

◆ m_valid

bool lldb_private::AppleObjCRuntimeV1::ClassDescriptorV1::m_valid
private

Definition at line 94 of file AppleObjCRuntimeV1.h.

Referenced by IsValid().


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