Go to the documentation of this file.
39 using entries_t = std::vector<PogoEntry>;
40 using it_entries = ref_iterator<entries_t&>;
41 using it_const_entries = const_ref_iterator<const entries_t&>;
43 enum class SIGNATURES {
52 Debug{Debug::TYPES::POGO},
56 Pogo(
const details::pe_debug& debug, SIGNATURES sig);
57 Pogo(
const Pogo&) =
default;
60 std::unique_ptr<Debug>
clone()
const override {
61 return std::unique_ptr<Debug>(
new Pogo(*
this));
77 void add(PogoEntry entry) {
78 entries_.push_back(std::move(entry));
82 return debug->type() == Debug::TYPES::POGO;
85 void accept(Visitor& visitor)
const override;
92 SIGNATURES sig_ = SIGNATURES::UNKNOWN;
Class that is used to rebuild a raw PE binary from a PE::Binary object.
Definition PE/Builder.hpp:45
This class represents a generic entry in the debug data directory. For known types,...
Definition debug/Debug.hpp:38
Main interface to parse PE binaries. In particular the static functions: Parser::parse should be used...
Definition PE/Parser.hpp:47
This class represents a Profile Guided Optimization entry from the debug directory (IMAGE_DEBUG_TYPE_...
Definition Pogo.hpp:33
Pogo(SIGNATURES sig)
Definition Pogo.hpp:51
std::unique_ptr< Debug > clone() const override
Definition Pogo.hpp:60
static bool classof(const Debug *debug)
Definition Pogo.hpp:81
SIGNATURES
Definition Pogo.hpp:43
Pogo(const Pogo &)=default
void accept(Visitor &visitor) const override
Pogo & operator=(const Pogo &)=default
it_entries entries()
An iterator over the different POGO elements.
Definition Pogo.hpp:69
it_const_entries entries() const
Definition Pogo.hpp:73
Pogo(const details::pe_debug &debug, SIGNATURES sig)
void add(PogoEntry entry)
Definition Pogo.hpp:77
friend std::ostream & operator<<(std::ostream &os, const Pogo &entry)
SIGNATURES signature() const
Definition Pogo.hpp:64
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
const char * to_string(DataDirectory::TYPES e)
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41