16#ifndef LIEF_PE_DEBUG_CODE_VIEW_PDB_H
17#define LIEF_PE_DEBUG_CODE_VIEW_PDB_H
18#include "LIEF/PE/debug/CodeView.hpp"
39 using signature_t = std::array<uint8_t, 16>;
42 const details::pe_pdb_70& pdb_70);
46 std::string guid()
const;
48 uint32_t age()
const {
52 const signature_t& signature()
const {
56 const std::string& filename()
const {
60 void age(uint32_t age) {
64 void signature(
const signature_t& sig) {
68 void filename(std::string filename) {
69 filename_ = std::move(filename);
72 std::unique_ptr<Debug> clone()
const override {
73 return std::unique_ptr<Debug>(
new CodeViewPDB(*
this));
76 static bool classof(
const Debug* debug) {
77 if (!CodeView::classof(debug)) {
80 const auto& cv =
static_cast<const CodeView&
>(*debug);
82 return cv.
signature() == SIGNATURES::PDB_20 ||
83 cv.signature() == SIGNATURES::PDB_70;
86 void accept(
Visitor& visitor)
const override;
87 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const CodeViewPDB& entry);
93 signature_t signature_;
94 std::string filename_;
Class that is used to rebuild a raw PE binary from a PE::Binary object.
Definition PE/Builder.hpp:45
CodeView PDB specialization.
Definition CodeViewPDB.hpp:34
Interface for the (Generic) Debug CodeView (IMAGE_DEBUG_TYPE_CODEVIEW)
Definition CodeView.hpp:26
SIGNATURES signature() const
The signature that defines the underlying type of the payload.
Definition CodeView.hpp:56
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
Definition Visitor.hpp:219
LIEF namespace.
Definition Abstract/Binary.hpp:32