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

This class provides an interface for PDB files. One can instantiate this class using LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file. More...

#include <DebugInfo.hpp>

Inheritance diagram for LIEF::pdb::DebugInfo:
Collaboration diagram for LIEF::pdb::DebugInfo:

Public Types

using compilation_units_it = iterator_range<CompilationUnit::Iterator>
 Iterator over the CompilationUnit.
 
using public_symbols_it = iterator_range<PublicSymbol::Iterator>
 Iterator over the symbols located in the PDB public symbol stream.
 
using types_it = iterator_range<Type::Iterator>
 Iterator over the PDB's types.
 
- Public Types inherited from LIEF::DebugInfo
enum class  FORMAT { UNKNOWN = 0 , DWARF , PDB }
 

Public Member Functions

FORMAT format () const override
 
compilation_units_it compilation_units () const
 Iterator over the CompilationUnit from the PDB's DBI stream. CompilationUnit are also named "Module" in the PDB's official documentation.
 
public_symbols_it public_symbols () const
 Return an iterator over the public symbol stream.
 
types_it types () const
 Return an iterator over the different types registered in this PDB.
 
std::unique_ptr< Typefind_type (const std::string &name) const
 Find the type with the given name.
 
std::unique_ptr< PublicSymbolfind_public_symbol (const std::string &name) const
 Try to find the PublicSymbol from the given name (based on the public symbol stream)
 
uint32_t age () const
 The number of times the PDB file has been written.
 
std::string guid () const
 Unique identifier of the PDB file.
 
 ~DebugInfo () override=default
 
 DebugInfo (std::unique_ptr< details::DebugInfo > impl)
 
- Public Member Functions inherited from LIEF::DebugInfo
 DebugInfo (std::unique_ptr< details::DebugInfo > impl)
 
template<class T >
const T * as () const
 This function can be used to down cast a DebugInfo instance:
 

Static Public Member Functions

static std::unique_ptr< DebugInfofrom_file (const std::string &pdb_path)
 Instantiate this class from the given PDB file. It returns a nullptr if the PDB can't be processed.
 
static bool classof (const LIEF::DebugInfo *info)
 

Detailed Description

This class provides an interface for PDB files. One can instantiate this class using LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file.

Member Typedef Documentation

◆ compilation_units_it

◆ public_symbols_it

Iterator over the symbols located in the PDB public symbol stream.

◆ types_it

Iterator over the PDB's types.

Constructor & Destructor Documentation

◆ ~DebugInfo()

LIEF::pdb::DebugInfo::~DebugInfo ( )
overridevirtualdefault

Reimplemented from LIEF::DebugInfo.

◆ DebugInfo()

LIEF::DebugInfo::DebugInfo ( std::unique_ptr< details::DebugInfo > impl)

Member Function Documentation

◆ age()

uint32_t LIEF::pdb::DebugInfo::age ( ) const

The number of times the PDB file has been written.

◆ classof()

static bool LIEF::pdb::DebugInfo::classof ( const LIEF::DebugInfo * info)
inlinestatic

References LIEF::DebugInfo::PDB.

◆ compilation_units()

compilation_units_it LIEF::pdb::DebugInfo::compilation_units ( ) const

Iterator over the CompilationUnit from the PDB's DBI stream. CompilationUnit are also named "Module" in the PDB's official documentation.

◆ find_public_symbol()

std::unique_ptr< PublicSymbol > LIEF::pdb::DebugInfo::find_public_symbol ( const std::string & name) const

Try to find the PublicSymbol from the given name (based on the public symbol stream)

The function returns a nullptr if the symbol can't be found

const DebugInfo& info = ...;
if (auto found = info.find_public_symbol("MiSyncSystemPdes")) {
// FOUND!
}
DebugInfo(std::unique_ptr< details::DebugInfo > impl)

◆ find_type()

std::unique_ptr< Type > LIEF::pdb::DebugInfo::find_type ( const std::string & name) const

Find the type with the given name.

◆ format()

FORMAT LIEF::pdb::DebugInfo::format ( ) const
inlineoverridevirtual

Reimplemented from LIEF::DebugInfo.

References LIEF::DebugInfo::PDB.

◆ from_file()

static std::unique_ptr< DebugInfo > LIEF::pdb::DebugInfo::from_file ( const std::string & pdb_path)
static

Instantiate this class from the given PDB file. It returns a nullptr if the PDB can't be processed.

Referenced by LIEF::pdb::load().

◆ guid()

std::string LIEF::pdb::DebugInfo::guid ( ) const

Unique identifier of the PDB file.

◆ public_symbols()

public_symbols_it LIEF::pdb::DebugInfo::public_symbols ( ) const

Return an iterator over the public symbol stream.

◆ types()

types_it LIEF::pdb::DebugInfo::types ( ) const

Return an iterator over the different types registered in this PDB.


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