LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_PE_DEBUG_CODE_VIEW_PDB_H
17#define LIEF_PE_DEBUG_CODE_VIEW_PDB_H
40 using signature_t = std::array<uint8_t, 16>;
42 CodeView(CodeView::SIGNATURES::PDB_70)
46 CodeView(CodeView::SIGNATURES::PDB_70),
48 filename_(std::move(filename))
52 const details::pe_pdb_70& pdb_70, Section* sec);
55 const details::pe_pdb_20& pdb_70, Section* sec);
58 CodeViewPDB&
operator=(
const CodeViewPDB& other) =
default;
61 CodeViewPDB&
operator=(CodeViewPDB&& other) =
default;
62 std::string
guid()
const;
66 uint32_t
age()
const {
77 const std::string&
filename()
const {
83 void age(uint32_t age) {
92 filename_ = std::move(filename);
95 std::unique_ptr<Debug>
clone()
const override {
96 return std::unique_ptr<Debug>(
new CodeViewPDB(*
this));
100 if (!CodeView::classof(debug)) {
103 const auto& cv =
static_cast<const CodeView&
>(*debug);
105 return cv.signature() == SIGNATURES::PDB_20 ||
106 cv.signature() == SIGNATURES::PDB_70;
109 void accept(Visitor& visitor)
const override;
117 signature_t signature_ = {0};
118 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:35
CodeViewPDB & operator=(const CodeViewPDB &other)=default
CodeViewPDB(std::string filename)
Definition CodeViewPDB.hpp:45
std::string guid() const
The GUID signature to verify against the .pdb file signature. This attribute might be used to lookup ...
void age(uint32_t age)
Definition CodeViewPDB.hpp:83
void accept(Visitor &visitor) const override
static bool classof(const Debug *debug)
Definition CodeViewPDB.hpp:99
CodeViewPDB(const CodeViewPDB &other)=default
const std::string & filename() const
The path to the .pdb file.
Definition CodeViewPDB.hpp:79
uint32_t age() const
Age value to verify. The age does not necessarily correspond to any known time value,...
Definition CodeViewPDB.hpp:69
void signature(const signature_t &sig)
Definition CodeViewPDB.hpp:87
CodeViewPDB(CodeViewPDB &&other)=default
CodeViewPDB()
Definition CodeViewPDB.hpp:41
CodeViewPDB(const details::pe_debug &debug_info, const details::pe_pdb_70 &pdb_70, Section *sec)
~CodeViewPDB() override=default
const signature_t & signature() const
The 32-bit signature to verify against the .pdb file signature.
Definition CodeViewPDB.hpp:74
CodeViewPDB & operator=(CodeViewPDB &&other)=default
std::string to_string() const override
void filename(std::string filename)
Definition CodeViewPDB.hpp:91
CodeViewPDB(const details::pe_debug &debug_info, const details::pe_pdb_20 &pdb_70, Section *sec)
std::unique_ptr< Debug > clone() const override
Definition CodeViewPDB.hpp:95
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:52
Definition DataDirectory.hpp:37
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41