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);
52 uint32_t
age()
const {
66 void age(uint32_t age) {
70 void signature(
const signature_t& sig) {
74 void filename(std::string filename) {
75 filename_ = std::move(filename);
78 std::unique_ptr<Debug> clone()
const override {
79 return std::unique_ptr<Debug>(
new CodeViewPDB(*
this));
82 static bool classof(
const Debug* debug) {
83 if (!CodeView::classof(debug)) {
86 const auto& cv =
static_cast<const CodeView&
>(*debug);
88 return cv.signature() == SIGNATURES::PDB_20 ||
89 cv.signature() == SIGNATURES::PDB_70;
92 void accept(Visitor& visitor)
const override;
93 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const CodeViewPDB& entry);
95 ~CodeViewPDB()
override =
default;
99 signature_t signature_;
100 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
std::string guid() const
The GUID signature to verify against the .pdb file signature. This attribute might be used to lookup ...
const std::string & filename() const
The path to the .pdb file.
Definition CodeViewPDB.hpp:62
uint32_t age() const
Age value to verify. The age does not necessarily correspond to any known time value,...
Definition CodeViewPDB.hpp:52
const signature_t & signature() const
The 32-bit signature to verify against the .pdb file signature.
Definition CodeViewPDB.hpp:57
Interface for the (generic) Debug CodeView (IMAGE_DEBUG_TYPE_CODEVIEW)
Definition CodeView.hpp:26
Main interface to parse PE binaries. In particular the static functions: Parser::parse should be used...
Definition PE/Parser.hpp:47
LIEF namespace.
Definition Abstract/Binary.hpp:31