Load the PDB from the given path
Bases: DebugInfo
This class provides an interface for PDB files.
One can instantiate this class using lief.pdb.load() or lief.pdb.DebugInfo.from_file()
The number of times the PDB file has been written.
Iterator over the CompilationUnit from the PDB’s DBI stream. CompilationUnit are also named “Module” in the PDB’s official documentation
Try to find the PublicSymbol from the given name (based on the public symbol stream) The function returns None if the symbol can’t be found.
debug_info: lief.pdb.DebugInfo = ...
if sym := debug_info.find_public_symbol("MiSyncSystemPdes"):
print("found")
Overloaded function.
find_type(self, name: str) -> Optional[lief._lief.pdb.Type]
Find the type with the given name
find_type(self, index: int) -> Optional[lief._lief.pdb.Type]
Find type at the given index
Unique identifier of the PDB file.
Return an iterator over the public symbol stream.
Return an iterator over the different types registered in this PDB file
Bases: object
This class represents a Compilation Unit (or Module) in a PDB file
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.
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 include headers (.h, .hpp, …).
Bases: object
This class wraps build metadata represented by the codeview symbols: S_COMPILE3, S_COMPILE2, S_BUILDINFO
Bases: Enum
Bases: Enum
Version of the backend (e.g. 14.36.32537)
Build information represented by the S_BUILDINFO symbol
Bases: object
Build information represented by the S_BUILDINFO symbol
Path to the build tool (e.g. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe
Command line arguments used to invoke the build tool
Working directory where the build tool was invoked
PDB path
Source file consumed by the build tool
Environment information represented by the S_ENVBLOCK symbol
Version of the frontend (e.g. 19.36.32537)
Source language
Target CPU
Version of the tool as a string. For instance, Microsoft (R) CVTRES, Microsoft (R) LINK.
Bases: object
This class provides general information (RVA, name) about a symbol from the PDB’s public symbol stream (or Public symbol hash stream)
Relative Virtual Address of this symbol.
This function returns 0 if the RVA can’t be computed.
Demangled representation of the symbol
Name 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
Bases: object
The Relative Virtual Address of the function
The size of the function
Original source code location.
Name of the function
The name of the section in which this function is defined

Bases: object
Bases: Enum
Discriminator for the type’s subclasses
Type’s name (if present)
Size of the type. This size should match the value of sizeof(...) applied to this type.
Generates a C/C++ definition for this type

Bases: Type
This class represents a LF_ARRAY PDB type.
Type of the elements
Type of the index
Number of elements in this array

Bases: object
This class represents an attribute (LF_MEMBER) in an aggregate (class, struct, union, …)
Offset of this attribute in the aggregate
Name of this attribute.
Type of this attribute


Bases: Type
This class abstracts the following PDB types: LF_STRUCTURE, LF_INTERFACE, LF_CLASS or LF_UNION.
Return an iterator over the different attributes defined in this class-like type
Return an iterator over the different methods implemented in this class-like type
Mangled type name.




Bases: Type
This class represents a LF_ENUM PDB type
Bases: object
This class represents an enum entry which is essentially composed of a name and its value (integer).
Enum entry’s name
Enum entry’s value (if any)
Return the different entries associated with this enum
Try to find the enum matching the given value
The underlying type that is used to encode this enum
Enum’s mangled name

Bases: Type
This class represents a LF_PROCEDURE PDB type
Types of the function’s parameters
Type returned by this function

Bases: object
This class represents a Method (LF_ONEMETHOD) that can be defined in ClassLike PDB type
Bases: Enum
Visibility access (public, private, …)
Name of the method
Type/Properties of the method (virtual, static, etc.)

Bases: Type
This class represents a LF_MODIFIER PDB type
Underlying type targeted by this modifier

Bases: Type
This class represents a LF_POINTER PDB type
The underlying type pointed by this pointer

Bases: Type
This class represents a primitive types (int, float, …) which are also named simple types in the PDB format.
Bases: Enum
Bases: Enum
Check if this simple type is a pointer.
Check if the underlying type is signed.
Returns the mode (pointer type) of this Simple type.
Returns the underlying primitive type.

Check if the given file is a PDB