LLDB mainline
lldb_private::clike::BaseClass Class Reference

A direct base class of a C++ class or Objective-C interface. More...

#include <Type.h>

Public Member Functions

 BaseClass (TypeRef type, uint64_t byte_offset, bool is_virtual=false, std::optional< uint64_t > vbase_offset_offset=std::nullopt)
 vbase_offset_offset may only be given for a virtual base (see GetVBaseOffsetOffset).
TypeRef GetType () const
 The base class type.
uint64_t GetByteOffset () const
 Offset of the base class subobject from the start of the derived record.
bool IsVirtual () const
 True if this is a virtual base class.
std::optional< uint64_t > GetVBaseOffsetOffset () const
 The Itanium ABI vbase offset offset of a virtual base.

Private Attributes

TypeRef m_type
uint64_t m_byte_offset
bool m_is_virtual
std::optional< uint64_t > m_vbase_offset_offset

Detailed Description

A direct base class of a C++ class or Objective-C interface.

Definition at line 123 of file source/Plugins/TypeSystem/Clike/Type.h.

Constructor & Destructor Documentation

◆ BaseClass()

lldb_private::clike::BaseClass::BaseClass ( TypeRef type,
uint64_t byte_offset,
bool is_virtual = false,
std::optional< uint64_t > vbase_offset_offset = std::nullopt )
inline

vbase_offset_offset may only be given for a virtual base (see GetVBaseOffsetOffset).

Definition at line 127 of file source/Plugins/TypeSystem/Clike/Type.h.

References m_byte_offset, m_is_virtual, m_type, and m_vbase_offset_offset.

Member Function Documentation

◆ GetByteOffset()

uint64_t lldb_private::clike::BaseClass::GetByteOffset ( ) const
inline

Offset of the base class subobject from the start of the derived record.

Definition at line 139 of file source/Plugins/TypeSystem/Clike/Type.h.

References m_byte_offset.

◆ GetType()

TypeRef lldb_private::clike::BaseClass::GetType ( ) const
inline

The base class type.

Definition at line 136 of file source/Plugins/TypeSystem/Clike/Type.h.

References m_type.

Referenced by lldb_private::clike::Type::HasFields().

◆ GetVBaseOffsetOffset()

std::optional< uint64_t > lldb_private::clike::BaseClass::GetVBaseOffsetOffset ( ) const
inline

The Itanium ABI vbase offset offset of a virtual base.

The base subobject is at obj + *(ptrdiff_t *)(*(char **)obj - / vbase_offset_offset). Returns std::nullopt if this is not a virtual base or the offset is unknown.

Definition at line 149 of file source/Plugins/TypeSystem/Clike/Type.h.

References m_vbase_offset_offset.

◆ IsVirtual()

bool lldb_private::clike::BaseClass::IsVirtual ( ) const
inline

True if this is a virtual base class.

Definition at line 142 of file source/Plugins/TypeSystem/Clike/Type.h.

References m_is_virtual.

Member Data Documentation

◆ m_byte_offset

uint64_t lldb_private::clike::BaseClass::m_byte_offset
private

Definition at line 155 of file source/Plugins/TypeSystem/Clike/Type.h.

Referenced by BaseClass(), and GetByteOffset().

◆ m_is_virtual

bool lldb_private::clike::BaseClass::m_is_virtual
private

Definition at line 156 of file source/Plugins/TypeSystem/Clike/Type.h.

Referenced by BaseClass(), and IsVirtual().

◆ m_type

TypeRef lldb_private::clike::BaseClass::m_type
private

Definition at line 154 of file source/Plugins/TypeSystem/Clike/Type.h.

Referenced by BaseClass(), and GetType().

◆ m_vbase_offset_offset

std::optional<uint64_t> lldb_private::clike::BaseClass::m_vbase_offset_offset
private

Definition at line 157 of file source/Plugins/TypeSystem/Clike/Type.h.

Referenced by BaseClass(), and GetVBaseOffsetOffset().


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