LIEF: Library to Instrument Executable Formats Version 0.17.0
|
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>
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< Type > | find_type (const std::string &name) const |
Find the type with the given name. | |
std::unique_ptr< PublicSymbol > | find_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< DebugInfo > | from_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) |
This class provides an interface for PDB files. One can instantiate this class using LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file.
Iterator over the CompilationUnit.
Iterator over the symbols located in the PDB public symbol stream.
Iterator over the PDB's types.
|
overridevirtualdefault |
Reimplemented from LIEF::DebugInfo.
LIEF::DebugInfo::DebugInfo | ( | std::unique_ptr< details::DebugInfo > | impl | ) |
uint32_t LIEF::pdb::DebugInfo::age | ( | ) | const |
The number of times the PDB file has been written.
|
inlinestatic |
References LIEF::DebugInfo::PDB.
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.
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
std::unique_ptr< Type > LIEF::pdb::DebugInfo::find_type | ( | const std::string & | name | ) | const |
Find the type with the given name.
|
inlineoverridevirtual |
Reimplemented from LIEF::DebugInfo.
References LIEF::DebugInfo::PDB.
|
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().
std::string LIEF::pdb::DebugInfo::guid | ( | ) | const |
Unique identifier of the PDB file.
public_symbols_it LIEF::pdb::DebugInfo::public_symbols | ( | ) | const |
Return an iterator over the public symbol stream.
types_it LIEF::pdb::DebugInfo::types | ( | ) | const |
Return an iterator over the different types registered in this PDB.