pub struct DebugData<'a> {
pub codeview_pdb70_debug_info: Option<CodeviewPDB70DebugInfo<'a>>,
pub codeview_pdb20_debug_info: Option<CodeviewPDB20DebugInfo<'a>>,
pub vcfeature_info: Option<VCFeatureInfo>,
pub ex_dll_characteristics_info: Option<ExDllCharacteristicsInfo>,
pub repro_info: Option<ReproInfo<'a>>,
pub pogo_info: Option<POGOInfo<'a>>,
/* private fields */
}Expand description
Represents debug data extracted from a PE (Portable Executable) or TE (Terse Executable) file.
Fields§
§codeview_pdb70_debug_info: Option<CodeviewPDB70DebugInfo<'a>>Parsed CodeView PDB 7.0 (RSDS) debug information, if available.
CodeView PDB 7.0 contains a GUID, an age value, and the path to the PDB file. This is commonly used in modern PDB files.
codeview_pdb20_debug_info: Option<CodeviewPDB20DebugInfo<'a>>Parsed CodeView PDB 2.0 (NB10) debug information, if available.
CodeView PDB 2.0 includes a signature, an age value, and the path to the PDB file. It is used in older PDB formats.
vcfeature_info: Option<VCFeatureInfo>Visual C++ feature data, if available.
This includes information about specific features or optimizations enabled in Visual C++ builds.
ex_dll_characteristics_info: Option<ExDllCharacteristicsInfo>Extended DLL characteristics information, if available.
This data includes extended properties of the DLL that may affect how the operating system handles the DLL, such as security features.
repro_info: Option<ReproInfo<'a>>Reproducible build (Repro) information, if available.
- MSVC builds: Contains a 32-byte hash stored directly in the raw data.
- Clang builds: Uses the
ImageDebugDirectory::time_date_stampas a hash, with no dedicated raw data.
pogo_info: Option<POGOInfo<'a>>Profile-guided optimization (POGO aka PGO) data, if available.
This data provides information relevant to Profile-Guided Optimization (POGO) processes, including function and data block optimizations.
Reference: https://devblogs.microsoft.com/cppblog/pogo
Implementations§
Source§impl<'a> DebugData<'a>
impl<'a> DebugData<'a>
pub fn parse( bytes: &'a [u8], dd: DataDirectory, sections: &[SectionTable], file_alignment: u32, ) -> Result<Self>
pub fn parse_with_opts( bytes: &'a [u8], dd: DataDirectory, sections: &[SectionTable], file_alignment: u32, opts: &ParseOptions, ) -> Result<Self>
pub fn parse_with_opts_and_fixup( bytes: &'a [u8], dd: DataDirectory, sections: &[SectionTable], file_alignment: u32, opts: &ParseOptions, rva_offset: u32, ) -> Result<Self>
Sourcepub fn guid(&self) -> Option<[u8; 16]>
pub fn guid(&self) -> Option<[u8; 16]>
Return this executable’s debugging GUID, suitable for matching against a PDB file.
Sourcepub fn find_type(&self, data_type: u32) -> Option<ImageDebugDirectory>
pub fn find_type(&self, data_type: u32) -> Option<ImageDebugDirectory>
Find a specific debug type in the debug data.
Sourcepub fn entries(&self) -> ImageDebugDirectoryIterator<'a> ⓘ
pub fn entries(&self) -> ImageDebugDirectoryIterator<'a> ⓘ
Returns iterator for ImageDebugDirectory