LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::PE::CodeViewPDB Class Reference

CodeView PDB specialization. More...

#include <CodeViewPDB.hpp>

Inheritance diagram for LIEF::PE::CodeViewPDB:
Collaboration diagram for LIEF::PE::CodeViewPDB:

Public Types

using signature_t = std::array<uint8_t, 16>
 
- Public Types inherited from LIEF::PE::CodeView
enum class  SIGNATURES {
  UNKNOWN = 0 , PDB_70 = 0x53445352 , PDB_20 = 0x3031424e , CV_50 = 0x3131424e ,
  CV_41 = 0x3930424e
}
 Code view signatures. More...
 
- Public Types inherited from LIEF::PE::Debug
enum class  TYPES {
  UNKNOWN = 0 , COFF = 1 , CODEVIEW = 2 , FPO = 3 ,
  MISC = 4 , EXCEPTION = 5 , FIXUP = 6 , OMAP_TO_SRC = 7 ,
  OMAP_FROM_SRC = 8 , BORLAND = 9 , RESERVED10 = 10 , CLSID = 11 ,
  VC_FEATURE = 12 , POGO = 13 , ILTCG = 14 , MPX = 15 ,
  REPRO = 16 , EX_DLLCHARACTERISTICS = 20
}
 The entry types. More...
 
- Public Types inherited from LIEF::Object
template<class T >
using output_t = add_pointer_t<decay_t<T>>
 
template<class T >
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>
 

Public Member Functions

 CodeViewPDB ()=default
 
 CodeViewPDB (const details::pe_debug &debug_info, const details::pe_pdb_70 &pdb_70)
 
 CodeViewPDB (const CodeViewPDB &other)=default
 
CodeViewPDBoperator= (const CodeViewPDB &other)=default
 
std::string guid () const
 The GUID signature to verify against the .pdb file signature. This attribute might be used to lookup remote PDB file on a symbol server.
 
uint32_t age () const
 Age value to verify. The age does not necessarily correspond to any known time value, it is used to determine if a .pdb file is out of sync with a corresponding .exe file.
 
const signature_tsignature () const
 The 32-bit signature to verify against the .pdb file signature.
 
const std::string & filename () const
 The path to the .pdb file.
 
void age (uint32_t age)
 
void signature (const signature_t &sig)
 
void filename (std::string filename)
 
std::unique_ptr< Debugclone () const override
 
void accept (Visitor &visitor) const override
 
 ~CodeViewPDB () override=default
 
- Public Member Functions inherited from LIEF::PE::CodeView
 CodeView ()
 
 CodeView (SIGNATURES sig)
 
 CodeView (const details::pe_debug &debug, SIGNATURES sig)
 
 CodeView (const CodeView &other)=default
 
CodeViewoperator= (const CodeView &other)=default
 
 ~CodeView () override=default
 
SIGNATURES signature () const
 The signature that defines the underlying type of the payload.
 
- Public Member Functions inherited from LIEF::PE::Debug
 Debug ()=default
 
 Debug (TYPES type)
 
 Debug (const details::pe_debug &debug_s)
 
 Debug (const Debug &other)=default
 
Debugoperator= (const Debug &other)=default
 
 ~Debug () override=default
 
uint32_t characteristics () const
 Reserved should be 0.
 
uint32_t timestamp () const
 The time and date when the debug data was created.
 
uint16_t major_version () const
 The major version number of the debug data format.
 
uint16_t minor_version () const
 The minor version number of the debug data format.
 
TYPES type () const
 The format DEBUG_TYPES of the debugging information.
 
uint32_t sizeof_data () const
 Size of the debug data.
 
uint32_t addressof_rawdata () const
 Address of the debug data relative to the image base.
 
uint32_t pointerto_rawdata () const
 File offset of the debug data.
 
void characteristics (uint32_t characteristics)
 
void timestamp (uint32_t timestamp)
 
void major_version (uint16_t major_version)
 
void minor_version (uint16_t minor_version)
 
void sizeof_data (uint32_t sizeof_data)
 
void addressof_rawdata (uint32_t addressof_rawdata)
 
void pointerto_rawdata (uint32_t pointerto_rawdata)
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::Object
 Object ()
 
 Object (const Object &other)
 
Objectoperator= (const Object &other)
 
template<class T >
output_t< T > as ()
 
template<class T >
output_const_t< T > as () const
 
virtual bool operator== (const Object &other) const
 
virtual bool operator!= (const Object &other) const
 
virtual ~Object ()
 

Static Public Member Functions

static bool classof (const Debug *debug)
 
- Static Public Member Functions inherited from LIEF::PE::CodeView
static bool classof (const Debug *debug)
 

Detailed Description

CodeView PDB specialization.

Member Typedef Documentation

◆ signature_t

using LIEF::PE::CodeViewPDB::signature_t = std::array<uint8_t, 16>

Constructor & Destructor Documentation

◆ CodeViewPDB() [1/3]

LIEF::PE::CodeViewPDB::CodeViewPDB ( )
default

◆ CodeViewPDB() [2/3]

LIEF::PE::CodeViewPDB::CodeViewPDB ( const details::pe_debug & debug_info,
const details::pe_pdb_70 & pdb_70 )

◆ CodeViewPDB() [3/3]

LIEF::PE::CodeViewPDB::CodeViewPDB ( const CodeViewPDB & other)
default

◆ ~CodeViewPDB()

LIEF::PE::CodeViewPDB::~CodeViewPDB ( )
overridedefault

Member Function Documentation

◆ accept()

void LIEF::PE::CodeViewPDB::accept ( Visitor & visitor) const
overridevirtual

Reimplemented from LIEF::PE::CodeView.

◆ age() [1/2]

uint32_t LIEF::PE::CodeViewPDB::age ( ) const
inline

Age value to verify. The age does not necessarily correspond to any known time value, it is used to determine if a .pdb file is out of sync with a corresponding .exe file.

◆ age() [2/2]

void LIEF::PE::CodeViewPDB::age ( uint32_t age)
inline

◆ classof()

static bool LIEF::PE::CodeViewPDB::classof ( const Debug * debug)
inlinestatic

◆ clone()

std::unique_ptr< Debug > LIEF::PE::CodeViewPDB::clone ( ) const
inlineoverridevirtual

Reimplemented from LIEF::PE::CodeView.

◆ filename() [1/2]

const std::string & LIEF::PE::CodeViewPDB::filename ( ) const
inline

The path to the .pdb file.

◆ filename() [2/2]

void LIEF::PE::CodeViewPDB::filename ( std::string filename)
inline

◆ guid()

std::string LIEF::PE::CodeViewPDB::guid ( ) const

The GUID signature to verify against the .pdb file signature. This attribute might be used to lookup remote PDB file on a symbol server.

◆ operator=()

CodeViewPDB & LIEF::PE::CodeViewPDB::operator= ( const CodeViewPDB & other)
default

◆ signature() [1/2]

const signature_t & LIEF::PE::CodeViewPDB::signature ( ) const
inline

The 32-bit signature to verify against the .pdb file signature.

◆ signature() [2/2]

void LIEF::PE::CodeViewPDB::signature ( const signature_t & sig)
inline

The documentation for this class was generated from the following file: