LIEF: Library to Instrument Executable Formats Version 2.0.0
Loading...
Searching...
No Matches
LIEF::dwarf::Parameter Class Reference

This class represents a DWARF parameter which can be either: More...

#include <Parameter.hpp>

Inheritance diagram for LIEF::dwarf::Parameter:

Public Types

enum class  KIND { UNKNOWN = 0 , TEMPLATE_TYPE , TEMPLATE_VALUE , FORMAL }
using Location = dwarf::Location
 Location of a parameter (see: dwarf::Location).
using RegisterLoc = dwarf::RegisterLoc
 Register location of a parameter (see: dwarf::RegisterLoc).
using CompositeLocation = dwarf::CompositeLocation
 Location of a parameter split across several pieces (see: dwarf::CompositeLocation).

Public Member Functions

 Parameter ()=delete
 Parameter (Parameter &&other) noexcept
Parameter & operator= (Parameter &&other) noexcept
Parameter & operator= (const Parameter &)=delete
 Parameter (const Parameter &)=delete
KIND kind () const
std::string_view name () const
 Name of the parameter.
std::unique_ptr< Type > type () const
 Type of this parameter.
std::unique_ptr< Location > location () const
 Location of this parameter. For instance it can be a specific register that is not following the calling convention.
std::unique_ptr< Location > location (uint64_t pc) const
 Location of this parameter when the program counter is at the given address.
std::vector< LocationEntry > locations () const
 All the location entries of this parameter.
template<class T>
const T * as () const
virtual ~Parameter ()

Static Public Member Functions

static std::unique_ptr< Parameter > create (std::unique_ptr< details::Parameter > impl)

Detailed Description

This class represents a DWARF parameter which can be either:

Member Typedef Documentation

◆ CompositeLocation

◆ Location

◆ RegisterLoc

Register location of a parameter (see: dwarf::RegisterLoc).

Member Enumeration Documentation

◆ KIND

enum class LIEF::dwarf::Parameter::KIND
strong
Enumerator
UNKNOWN 
TEMPLATE_TYPE 

DW_TAG_template_type_parameter.

TEMPLATE_VALUE 

DW_TAG_template_value_parameter.

FORMAL 

DW_TAG_formal_parameter.

Constructor & Destructor Documentation

◆ Parameter() [1/3]

LIEF::dwarf::Parameter::Parameter ( )
delete

◆ Parameter() [2/3]

LIEF::dwarf::Parameter::Parameter ( Parameter && other)
noexcept

References Parameter().

◆ Parameter() [3/3]

LIEF::dwarf::Parameter::Parameter ( const Parameter & )
delete

References Parameter().

◆ ~Parameter()

virtual LIEF::dwarf::Parameter::~Parameter ( )
virtual

References LIEF_LOCAL.

Member Function Documentation

◆ as()

template<class T>
const T * LIEF::dwarf::Parameter::as ( ) const
inline

References as().

Referenced by as().

◆ create()

std::unique_ptr< Parameter > LIEF::dwarf::Parameter::create ( std::unique_ptr< details::Parameter > impl)
static

References Parameter().

◆ kind()

KIND LIEF::dwarf::Parameter::kind ( ) const

◆ location() [1/2]

std::unique_ptr< Location > LIEF::dwarf::Parameter::location ( ) const

Location of this parameter. For instance it can be a specific register that is not following the calling convention.

References location().

Referenced by location(), and location().

◆ location() [2/2]

std::unique_ptr< Location > LIEF::dwarf::Parameter::location ( uint64_t pc) const

Location of this parameter when the program counter is at the given address.

References location().

◆ locations()

std::vector< LocationEntry > LIEF::dwarf::Parameter::locations ( ) const

All the location entries of this parameter.

References locations().

Referenced by locations().

◆ name()

std::string_view LIEF::dwarf::Parameter::name ( ) const

Name of the parameter.

References LIEF_LIFETIMEBOUND.

◆ operator=() [1/2]

Parameter & LIEF::dwarf::Parameter::operator= ( const Parameter & )
delete

References Parameter().

◆ operator=() [2/2]

Parameter & LIEF::dwarf::Parameter::operator= ( Parameter && other)
noexcept

References Parameter().

◆ type()

std::unique_ptr< Type > LIEF::dwarf::Parameter::type ( ) const

Type of this parameter.

References LIEF_LIFETIMEBOUND, and type().

Referenced by type().


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