LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
LIEF::PE::Pogo Class Reference

This class represents a Profile Guided Optimization entry from the debug directory (IMAGE_DEBUG_TYPE_POGO). More...

#include <Pogo.hpp>

Inheritance diagram for LIEF::PE::Pogo:
Inheritance graph
[legend]
Collaboration diagram for LIEF::PE::Pogo:
Collaboration graph
[legend]

Public Types

enum class  SIGNATURES { UNKNOWN = 0x0fffffff , ZERO = 0x00000000 , LCTG = 0x4C544347 , PGI = 0x50474900 }
 
using entries_t = std::vector<PogoEntry>
 
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 , 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

 Pogo (SIGNATURES sig)
 
 Pogo (const details::pe_debug &debug, SIGNATURES sig)
 
 Pogo (const Pogo &)
 
Pogooperator= (const Pogo &)
 
std::unique_ptr< Debugclone () const override
 
SIGNATURES signature () const
 
it_entries entries ()
 An iterator over the different POGO elements.
 
it_const_entries entries () const
 
void add (PogoEntry entry)
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::PE::Debug
 Debug (TYPES type)
 
 Debug (const details::pe_debug &debug_s)
 
 Debug (const Debug &other)
 
Debugoperator= (const Debug &other)
 
uint32_t characteristics () const
 Reserved should be 0.
 
uint32_t timestamp () const
 The time and date that 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.
 
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)
 
- Public Member Functions inherited from LIEF::Object
 Object (const Object &other)
 
Objectoperator= (const Object &other)
 
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
 

Static Public Member Functions

static bool classof (const Debug *debug)
 

Detailed Description

This class represents a Profile Guided Optimization entry from the debug directory (IMAGE_DEBUG_TYPE_POGO).

Member Function Documentation

◆ accept()

void LIEF::PE::Pogo::accept ( Visitor & visitor) const
overridevirtual

Reimplemented from LIEF::PE::Debug.

◆ clone()

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

Reimplemented from LIEF::PE::Debug.


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