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 {
51 type_ = Debug::TYPES::POGO;
55 Debug{Debug::TYPES::POGO},
59 Pogo(
const details::pe_debug& debug, SIGNATURES sig, Section* sec) :
64 Pogo(
const Pogo&) =
default;
70 std::unique_ptr<Debug>
clone()
const override {
71 return std::unique_ptr<Debug>(
new Pogo(*
this));
87 void add(PogoEntry entry) {
88 entries_.push_back(std::move(entry));
92 return debug->type() == Debug::TYPES::POGO;
95 void accept(Visitor& visitor)
const override;
102 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:40
Main interface to parse PE binaries. In particular the static functions: Parser::parse should be used...
Definition PE/Parser.hpp:52
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:54
std::unique_ptr< Debug > clone() const override
Definition Pogo.hpp:70
static bool classof(const Debug *debug)
Definition Pogo.hpp:91
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:79
it_const_entries entries() const
Definition Pogo.hpp:83
Pogo()
Definition Pogo.hpp:50
void add(PogoEntry entry)
Definition Pogo.hpp:87
Pogo & operator=(Pogo &&)=default
SIGNATURES signature() const
Definition Pogo.hpp:74
Pogo(const details::pe_debug &debug, SIGNATURES sig, Section *sec)
Definition Pogo.hpp:59
std::string to_string() const override
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
const char * to_string(AuxiliaryWeakExternal::CHARACTERISTICS e)
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41