LIEF: Library to Instrument Executable Formats Version 0.17.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 | |
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. | |
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:
DW_TAG_array_type
DW_TAG_atomic_type
DW_TAG_base_type
DW_TAG_class_type
DW_TAG_coarray_type
DW_TAG_const_type
DW_TAG_dynamic_type
DW_TAG_enumeration_type
DW_TAG_file_type
DW_TAG_immutable_type
DW_TAG_interface_type
DW_TAG_packed_type
DW_TAG_pointer_type
DW_TAG_ptr_to_member_type
DW_TAG_reference_type
DW_TAG_restrict_type
DW_TAG_rvalue_reference_type
DW_TAG_set_type
DW_TAG_shared_type
DW_TAG_string_type
DW_TAG_structure_type
DW_TAG_subroutine_type
DW_TAG_template_alias
DW_TAG_thrown_type
DW_TAG_typedef
DW_TAG_union_type
DW_TAG_unspecified_type
DW_TAG_volatile_type
|
strong |
|
virtual |
|
inline |
|
static |
|
inline |
Whether this type is a DW_TAG_unspecified_type
KIND LIEF::dwarf::Type::kind | ( | ) | const |
Referenced by 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(), and LIEF::dwarf::types::Volatile::classof().
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)
.