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

This class represents the IMAGE_DEBUG_TYPE_FPO debug entry. More...

#include <FPO.hpp>

Inheritance diagram for LIEF::PE::FPO:
Collaboration diagram for LIEF::PE::FPO:

Classes

struct  entry_t
 Represents the stack frame layout for a x86 function when frame pointer omission (FPO) optimization is used. More...

Public Types

enum class  FRAME_TYPE { FPO = 0 , TRAP = 1 , TSS = 2 , NON_FPO = 3 }
using entries_t = std::vector<entry_t>
using it_entries = ref_iterator<entries_t&>
using it_const_entries = const_ref_iterator<const entries_t&>
Public Types inherited from LIEF::PE::Debug
enum class  TYPES {
  UNKNOWN = 0 , COFF = 1 , CODEVIEW = 2 , FPO = 3 ,
  MISC = 4 , EXCEPTION = 5 , FIXUP = 6 , OMAP_TO_SRC = 7 ,
  OMAP_FROM_SRC = 8 , BORLAND = 9 , RESERVED10 = 10 , CLSID = 11 ,
  VC_FEATURE = 12 , POGO = 13 , ILTCG = 14 , MPX = 15 ,
  REPRO = 16 , PDBCHECKSUM = 19 , EX_DLLCHARACTERISTICS = 20
}
 The entry types. More...
Public Types inherited from LIEF::Object
template<class T>
using output_t = add_pointer_t<decay_t<T>>
template<class T>
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>

Public Member Functions

 FPO (const details::pe_debug &hdr, Section *section)
 FPO (const FPO &other)=default
FPOoperator= (const FPO &other)=default
 FPO (FPO &&)=default
FPOoperator= (FPO &&other)=default
std::unique_ptr< Debugclone () const override
it_const_entries entries () const
 Iterator over the FPO entries.
it_entries entries ()
 ~FPO () override=default
std::string to_string () const override
Public Member Functions inherited from LIEF::PE::Debug
 Debug ()=default
 Debug (TYPES type)
 Debug (const details::pe_debug &debug_s, Section *section)
 Debug (const Debug &other)=default
Debugoperator= (const Debug &other)=default
 Debug (Debug &&)=default
Debugoperator= (Debug &&)=default
 ~Debug () override=default
uint32_t characteristics () const
 Reserved should be 0.
uint32_t timestamp () const
 The time and date when the debug data was created.
uint16_t major_version () const
 The major version number of the debug data format.
uint16_t minor_version () const
 The minor version number of the debug data format.
TYPES type () const
 The format DEBUG_TYPES of the debugging information.
uint32_t sizeof_data () const
 Size of the debug data.
uint32_t addressof_rawdata () const
 Address of the debug data relative to the image base.
uint32_t pointerto_rawdata () const
 File offset of the debug data.
const Sectionsection () const
 The section where debug data is located.
Sectionsection ()
span< uint8_t > payload ()
 Debug data associated with this entry.
span< const uint8_t > payload () const
void characteristics (uint32_t characteristics)
void timestamp (uint32_t timestamp)
void major_version (uint16_t major_version)
void minor_version (uint16_t minor_version)
void sizeof_data (uint32_t sizeof_data)
void addressof_rawdata (uint32_t addressof_rawdata)
void pointerto_rawdata (uint32_t pointerto_rawdata)
template<class T>
const Tas () const
template<class T>
Tas ()
void accept (Visitor &visitor) const override
Public Member Functions inherited from LIEF::Object
 Object ()
 Object (const Object &other)
Objectoperator= (const Object &other)
 Object (Object &&other) noexcept=default
Objectoperator= (Object &&other) noexcept=default
template<class T>
output_t< T > as ()
template<class T>
output_const_t< T > as () const
virtual bool operator== (const Object &other) const
virtual bool operator!= (const Object &other) const
virtual ~Object ()

Static Public Member Functions

static std::unique_ptr< FPOparse (const details::pe_debug &hdr, Section *section, span< uint8_t > payload)
static bool classof (const Debug *debug)
Static Public Member Functions inherited from LIEF::PE::Debug
static span< uint8_t > get_payload (Section &section, uint32_t rva, uint32_t offset, uint32_t size)
static span< uint8_t > get_payload (Section &section, const details::pe_debug &hdr)
static span< uint8_t > get_payload (Section &section, const Debug &dbg)

Detailed Description

This class represents the IMAGE_DEBUG_TYPE_FPO debug entry.

Member Typedef Documentation

◆ entries_t

using LIEF::PE::FPO::entries_t = std::vector<entry_t>

◆ it_const_entries

◆ it_entries

Member Enumeration Documentation

◆ FRAME_TYPE

enum class LIEF::PE::FPO::FRAME_TYPE
strong
Enumerator
FPO 
TRAP 
TSS 
NON_FPO 

Constructor & Destructor Documentation

◆ FPO() [1/3]

LIEF::PE::FPO::FPO ( const details::pe_debug & hdr,
Section * section )
inline

◆ FPO() [2/3]

LIEF::PE::FPO::FPO ( const FPO & other)
default

References FPO().

◆ FPO() [3/3]

LIEF::PE::FPO::FPO ( FPO && )
default

References FPO().

◆ ~FPO()

LIEF::PE::FPO::~FPO ( )
overridedefault

Member Function Documentation

◆ classof()

bool LIEF::PE::FPO::classof ( const Debug * debug)
inlinestatic

◆ clone()

std::unique_ptr< Debug > LIEF::PE::FPO::clone ( ) const
inlineoverridevirtual

Reimplemented from LIEF::PE::Debug.

References FPO().

◆ entries() [1/2]

it_entries LIEF::PE::FPO::entries ( )
inline

◆ entries() [2/2]

it_const_entries LIEF::PE::FPO::entries ( ) const
inline

Iterator over the FPO entries.

◆ operator=() [1/2]

FPO & LIEF::PE::FPO::operator= ( const FPO & other)
default

References FPO().

◆ operator=() [2/2]

FPO & LIEF::PE::FPO::operator= ( FPO && other)
default

References FPO().

◆ parse()

std::unique_ptr< FPO > LIEF::PE::FPO::parse ( const details::pe_debug & hdr,
Section * section,
span< uint8_t > payload )
static

◆ to_string()

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

Reimplemented from LIEF::PE::Debug.


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