|
LIEF: Library to Instrument Executable Formats Version 1.0.0
|
This class represents a DWARF Type which includes: More...
#include <Type.hpp>

Classes | |
| class | Iterator |
Public Types | |
| enum class | KIND { UNKNOWN = 0 , UNSPECIFIED , BASE , CONST_KIND , CLASS , ARRAY , POINTER , STRUCT , UNION , TYPEDEF , REF , SET_TYPE , STRING , SUBROUTINE , POINTER_MEMBER , PACKED , FILE , THROWN , VOLATILE , RESTRICT , INTERFACE , SHARED , RVALREF , TEMPLATE_ALIAS , COARRAY , DYNAMIC , ATOMIC , IMMUTABLE , ENUM } |
Public Member Functions | |
| Type (std::unique_ptr< details::Type > impl) | |
| Type (details::Type &impl) | |
| Type (const Type &)=delete | |
| Type & | operator= (const Type &)=delete |
| Type (Type &&) noexcept | |
| Type & | operator= (Type &&) noexcept |
| virtual | ~Type () |
| KIND | kind () const |
| bool | is_unspecified () const |
| Whether this type is a DW_TAG_unspecified_type. | |
| result< std::string > | name () const |
| Return the type's name using either DW_AT_name or DW_AT_picture_string (if any). | |
| result< uint64_t > | size () const |
| Return the size of the type or an error if it can't be computed. | |
| debug_location_t | location () const |
| Return the debug location where this type is defined. | |
| std::unique_ptr< Scope > | scope () const |
| Return the scope in which this type is defined. | |
| std::string | to_decl (const DeclOpt &opt=DeclOpt()) const |
| Generates a C/C++ definition for this type. | |
| template<class T> | |
| const T * | as () const |
Static Public Member Functions | |
| static std::unique_ptr< Type > | create (std::unique_ptr< details::Type > impl) |
This class represents a DWARF Type which includes:
|
strong |
| LIEF::dwarf::Type::Type | ( | std::unique_ptr< details::Type > | impl | ) |
References LIEF_LOCAL.
Referenced by LIEF::dwarf::types::Array::Array(), LIEF::dwarf::types::Atomic::Atomic(), LIEF::dwarf::types::Base::Base(), LIEF::dwarf::types::ClassLike::ClassLike(), LIEF::dwarf::types::Array::classof(), LIEF::dwarf::types::Atomic::classof(), LIEF::dwarf::types::Base::classof(), LIEF::dwarf::types::Class::classof(), LIEF::dwarf::types::ClassLike::classof(), LIEF::dwarf::types::Coarray::classof(), LIEF::dwarf::types::Const::classof(), LIEF::dwarf::types::Dynamic::classof(), LIEF::dwarf::types::Enum::classof(), LIEF::dwarf::types::File::classof(), LIEF::dwarf::types::Immutable::classof(), LIEF::dwarf::types::Interface::classof(), LIEF::dwarf::types::Packed::classof(), LIEF::dwarf::types::Pointer::classof(), LIEF::dwarf::types::PointerToMember::classof(), LIEF::dwarf::types::Reference::classof(), LIEF::dwarf::types::Restrict::classof(), LIEF::dwarf::types::RValueReference::classof(), LIEF::dwarf::types::SetTy::classof(), LIEF::dwarf::types::Shared::classof(), LIEF::dwarf::types::StringTy::classof(), LIEF::dwarf::types::Structure::classof(), LIEF::dwarf::types::Subroutine::classof(), LIEF::dwarf::types::TemplateAlias::classof(), LIEF::dwarf::types::Thrown::classof(), LIEF::dwarf::types::Typedef::classof(), LIEF::dwarf::types::Union::classof(), LIEF::dwarf::types::Volatile::classof(), LIEF::dwarf::types::Coarray::Coarray(), LIEF::dwarf::types::Const::Const(), LIEF::dwarf::types::Dynamic::Dynamic(), LIEF::dwarf::types::Enum::Enum(), LIEF::dwarf::types::File::File(), LIEF::dwarf::types::Immutable::Immutable(), LIEF::dwarf::types::Interface::Interface(), LIEF::dwarf::Type::Iterator::operator*(), LIEF::dwarf::types::Array::operator*(), LIEF::dwarf::types::Atomic::operator*(), LIEF::dwarf::types::Const::operator*(), LIEF::dwarf::types::Immutable::operator*(), LIEF::dwarf::types::Pointer::operator*(), LIEF::dwarf::types::PointerToMember::operator*(), LIEF::dwarf::types::Reference::operator*(), LIEF::dwarf::types::Restrict::operator*(), LIEF::dwarf::types::RValueReference::operator*(), LIEF::dwarf::types::SetTy::operator*(), LIEF::dwarf::types::Shared::operator*(), LIEF::dwarf::types::TemplateAlias::operator*(), LIEF::dwarf::types::Thrown::operator*(), LIEF::dwarf::types::Typedef::operator*(), LIEF::dwarf::types::Volatile::operator*(), LIEF::dwarf::Type::Iterator::operator->(), LIEF::dwarf::types::Array::operator->(), LIEF::dwarf::types::Atomic::operator->(), LIEF::dwarf::types::Const::operator->(), LIEF::dwarf::types::Immutable::operator->(), LIEF::dwarf::types::Pointer::operator->(), LIEF::dwarf::types::PointerToMember::operator->(), LIEF::dwarf::types::Reference::operator->(), LIEF::dwarf::types::Restrict::operator->(), LIEF::dwarf::types::RValueReference::operator->(), LIEF::dwarf::types::SetTy::operator->(), LIEF::dwarf::types::Shared::operator->(), LIEF::dwarf::types::TemplateAlias::operator->(), LIEF::dwarf::types::Thrown::operator->(), LIEF::dwarf::types::Typedef::operator->(), LIEF::dwarf::types::Volatile::operator->(), operator=(), operator=(), LIEF::dwarf::types::Pointer::Pointer(), LIEF::dwarf::types::PointerToMember::PointerToMember(), LIEF::dwarf::types::Reference::Reference(), LIEF::dwarf::types::Restrict::Restrict(), LIEF::dwarf::types::Subroutine::return_type(), LIEF::dwarf::types::RValueReference::RValueReference(), LIEF::dwarf::types::SetTy::SetTy(), LIEF::dwarf::types::Shared::Shared(), LIEF::dwarf::types::StringTy::StringTy(), LIEF::dwarf::types::Subroutine::Subroutine(), LIEF::dwarf::types::TemplateAlias::TemplateAlias(), LIEF::dwarf::types::Thrown::Thrown(), Type(), Type(), LIEF::dwarf::types::Typedef::Typedef(), LIEF::dwarf::types::Array::underlying_type(), LIEF::dwarf::types::Atomic::underlying_type(), LIEF::dwarf::types::Const::underlying_type(), LIEF::dwarf::types::Enum::underlying_type(), LIEF::dwarf::types::Immutable::underlying_type(), LIEF::dwarf::types::Pointer::underlying_type(), LIEF::dwarf::types::PointerToMember::underlying_type(), LIEF::dwarf::types::Reference::underlying_type(), LIEF::dwarf::types::Restrict::underlying_type(), LIEF::dwarf::types::RValueReference::underlying_type(), LIEF::dwarf::types::SetTy::underlying_type(), LIEF::dwarf::types::Shared::underlying_type(), LIEF::dwarf::types::TemplateAlias::underlying_type(), LIEF::dwarf::types::Thrown::underlying_type(), LIEF::dwarf::types::Typedef::underlying_type(), LIEF::dwarf::types::Volatile::underlying_type(), LIEF::dwarf::types::Volatile::Volatile(), and ~Type().
| LIEF::dwarf::Type::Type | ( | details::Type & | impl | ) |
References LIEF_LOCAL.
|
delete |
References Type().
|
noexcept |
References Type().
|
virtual |
References Type().
|
inline |
|
static |
|
inline |
Whether this type is a DW_TAG_unspecified_type.
References kind(), and UNSPECIFIED.
| KIND LIEF::dwarf::Type::kind | ( | ) | const |
| debug_location_t LIEF::dwarf::Type::location | ( | ) | const |
Return the debug location where this type is defined.
| result< std::string > LIEF::dwarf::Type::name | ( | ) | const |
Return the type's name using either DW_AT_name or DW_AT_picture_string (if any).
| std::unique_ptr< Scope > LIEF::dwarf::Type::scope | ( | ) | const |
Return the scope in which this type is defined.
| result< uint64_t > LIEF::dwarf::Type::size | ( | ) | const |
Return the size of the type or an error if it can't be computed.
This size should match the equivalent of sizeof(Type).
Generates a C/C++ definition for this type.