Note
You can also find the Doxygen documentation here: here
Load the PDB file from the given path.
This class provides an interface for PDB files. One can instantiate this class using LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file.
Public Types
Iterator over the CompilationUnit.
Iterator over the symbols located in the PDB public symbol stream.
Public Functions
Iterator over the CompilationUnit from the PDB’s DBI stream. CompilationUnit are also named “Module” in the PDB’s official documentation.
Return an iterator over the public symbol stream.
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!
}
The number of times the PDB file has been written.
Unique identifier of the PDB file.
This class provides general information (RVA, name) about a symbol from the PDB’s public symbol stream (or Public symbol hash stream)
Public Types
Public Functions
Name of the symbol.
Demangled representation of the symbol.
Name of the section in which this symbol is defined (e.g. .text
).
This function returns an empty string if the section’s name can’t be found
Relative Virtual Address of this symbol.
This function returns 0 if the RVA can’t be computed.
Public Types
Public Functions
Friends
This class represents a CompilationUnit (or Module) in a PDB file.
Public Types
Public Functions
Name (or path) to the COFF object (.obj
) associated with this compilation unit (e.g. e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvlp.obj
)
Name of path to the original binary object (COFF, Archive) in which the compilation unit was located before being linked. e.g. e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvl.lib
Iterator over the sources files that compose this compilation unit. These files also include headers (.h, .hpp
, …).
Return an iterator over the function defined in this compilation unit. If the PDB does not contain or has an empty DBI stream, it returns an empty iterator.
Public Types
Public Functions
Friends
Public Functions
The name of the function (this name is usually demangled)
The Relative Virtual Address of the function.
The size of the function.
The name of the section in which this function is defined.
Original source code location.
Public Types
Public Functions
Friends
This is the base class for any PDB type.
Subclassed by LIEF::pdb::types::Array, LIEF::pdb::types::BitField, LIEF::pdb::types::ClassLike, LIEF::pdb::types::Enum, LIEF::pdb::types::Function, LIEF::pdb::types::Modifier, LIEF::pdb::types::Pointer, LIEF::pdb::types::Simple
Public Types
Public Types
Public Functions
Friends
This class represents an attribute (LF_MEMBER
) in an aggregate (class, struct, union, …)
Public Functions
Name of the attribute.
Offset of this attribute in the aggregate.
Public Types
Public Functions
Friends
This class abstracts the following PDB types: LF_STRUCTURE
, LF_INTERFACE
, LF_CLASS
or LF_UNION
.
Subclassed by LIEF::pdb::types::Class, LIEF::pdb::types::Interface, LIEF::pdb::types::Structure, LIEF::pdb::types::Union
Public Types
Public Functions
Mangled type name.
Demangled type name.
Iterator over the different attributes defined in this class-like type.
Iterator over the different methods implemented in this class-type type.
Size of the type including all its attributes. This size should match the sizeof(...)
this type.
This class represents a Method (LF_ONEMETHOD
) that can be defined in ClassLike PDB type.
Public Functions
Name of the method.
Public Types
Public Functions
Friends
This structure holds a debug location (source filename & line)