LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::PE::RuntimeFunctionAArch64 Class Reference

This class represents an entry in the exception table (.pdata section) for the AArch64 architecture. More...

#include <RuntimeFunctionAArch64.hpp>

Inheritance diagram for LIEF::PE::RuntimeFunctionAArch64:
Collaboration diagram for LIEF::PE::RuntimeFunctionAArch64:

Public Types

enum class  PACKED_FLAGS { UNPACKED = 0 , PACKED = 1 , PACKED_FRAGMENT = 2 , RESERVED = 3 }
Public Types inherited from LIEF::PE::ExceptionInfo
enum class  ARCH { UNKNOWN = 0 , ARM64 , X86_64 }
 Arch discriminator for the subclasses. More...

Public Member Functions

 RuntimeFunctionAArch64 (uint64_t RVA, uint32_t length, PACKED_FLAGS flag)
 RuntimeFunctionAArch64 (const RuntimeFunctionAArch64 &)=default
RuntimeFunctionAArch64operator= (const RuntimeFunctionAArch64 &)=default
 RuntimeFunctionAArch64 (RuntimeFunctionAArch64 &&)=default
RuntimeFunctionAArch64operator= (RuntimeFunctionAArch64 &&)=default
std::unique_ptr< ExceptionInfoclone () const override
uint32_t length () const
 Length of the function in bytes.
PACKED_FLAGS flag () const
 Flag describing the format the unwind data.
uint32_t rva_end () const
 Function end address.
std::string to_string () const override
 ~RuntimeFunctionAArch64 ()=default
Public Member Functions inherited from LIEF::PE::ExceptionInfo
 ExceptionInfo ()=delete
 ExceptionInfo (const ExceptionInfo &)=default
ExceptionInfooperator= (const ExceptionInfo &)=default
 ExceptionInfo (ExceptionInfo &&)=default
ExceptionInfooperator= (ExceptionInfo &&)=default
 ExceptionInfo (ARCH arch, uint64_t rva)
 ExceptionInfo (ARCH arch)
ARCH arch () const
 Target architecture of this exception.
uint32_t rva_start () const
 Function start address.
virtual ~ExceptionInfo ()=default
template<class T>
Tas ()
 Helper to downcast an ExceptionInfo into a concrete implementation.
template<class T>
const Tas () const

Static Public Member Functions

static std::unique_ptr< RuntimeFunctionAArch64parse (Parser &ctx, BinaryStream &strm)
static bool classof (const ExceptionInfo *info)
Static Public Member Functions inherited from LIEF::PE::ExceptionInfo
static std::unique_ptr< ExceptionInfoparse (Parser &ctx, BinaryStream &strm)
static std::unique_ptr< ExceptionInfoparse (Parser &ctx, BinaryStream &strm, Header::MACHINE_TYPES arch)

Detailed Description

This class represents an entry in the exception table (.pdata section) for the AArch64 architecture.

Since the ARM64 unwinding info can be encoded in a packed and unpacked format, this class is inherited by LIEF::PE::unwind_aarch64::PackedFunction and LIEF::PE::unwind_aarch64::UnpackedFunction

Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling#arm64-exception-handling-information

Member Enumeration Documentation

◆ PACKED_FLAGS

Enumerator
UNPACKED 
PACKED 
PACKED_FRAGMENT 
RESERVED 

Constructor & Destructor Documentation

◆ RuntimeFunctionAArch64() [1/3]

◆ RuntimeFunctionAArch64() [2/3]

LIEF::PE::RuntimeFunctionAArch64::RuntimeFunctionAArch64 ( const RuntimeFunctionAArch64 & )
default

◆ RuntimeFunctionAArch64() [3/3]

LIEF::PE::RuntimeFunctionAArch64::RuntimeFunctionAArch64 ( RuntimeFunctionAArch64 && )
default

◆ ~RuntimeFunctionAArch64()

LIEF::PE::RuntimeFunctionAArch64::~RuntimeFunctionAArch64 ( )
default

References RESERVED.

Member Function Documentation

◆ classof()

◆ clone()

std::unique_ptr< ExceptionInfo > LIEF::PE::RuntimeFunctionAArch64::clone ( ) const
inlineoverridevirtual

◆ flag()

PACKED_FLAGS LIEF::PE::RuntimeFunctionAArch64::flag ( ) const
inline

Flag describing the format the unwind data.

Referenced by RuntimeFunctionAArch64().

◆ length()

uint32_t LIEF::PE::RuntimeFunctionAArch64::length ( ) const
inline

◆ operator=() [1/2]

RuntimeFunctionAArch64 & LIEF::PE::RuntimeFunctionAArch64::operator= ( const RuntimeFunctionAArch64 & )
default

◆ operator=() [2/2]

RuntimeFunctionAArch64 & LIEF::PE::RuntimeFunctionAArch64::operator= ( RuntimeFunctionAArch64 && )
default

◆ parse()

std::unique_ptr< RuntimeFunctionAArch64 > LIEF::PE::RuntimeFunctionAArch64::parse ( Parser & ctx,
BinaryStream & strm )
static

◆ rva_end()

uint32_t LIEF::PE::RuntimeFunctionAArch64::rva_end ( ) const
inline

◆ to_string()

std::string LIEF::PE::RuntimeFunctionAArch64::to_string ( ) const
overridevirtual

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