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")
Find the type with the given name
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
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
Demangled type name
Size of the type including all its attributes. This size should match
the sizeof(...)
this type.
Mangled type name.
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