pub struct PDBInformation<'s> {
pub version: HeaderVersion,
pub signature: u32,
pub age: u32,
pub guid: Uuid,
pub names_offset: usize,
pub names_size: usize,
/* private fields */
}Expand description
A PDB info stream header parsed from a stream.
The PDB information stream contains the GUID and age fields that can be used to verify that a PDB file matches a specific binary, as well a list of named PDB streams with their stream indices.
Fields§
§version: HeaderVersionThe version of the PDB format in use.
signature: u32A 32-bit timestamp.
age: u32The number of times this PDB file has been written.
This number is bumped by the linker and other tools every time the PDB is modified. It does
not necessarily correspond to the age declared in the image. Consider using
DebugInformation::age for a better match.
This PDB matches an image, if the guid values match and the PDB age is equal or higher
than the image’s age.
guid: UuidA Uuid generated when this PDB file was created that should uniquely identify it.
names_offset: usizeThe offset of the start of the stream name data within the stream.
names_size: usizeThe size of the stream name data, in bytes.
Implementations§
Source§impl<'s> PDBInformation<'s>
impl<'s> PDBInformation<'s>
Sourcepub fn stream_names(&self) -> Result<StreamNames<'_>>
pub fn stream_names(&self) -> Result<StreamNames<'_>>
Get a StreamNames object that can be used to iterate over named streams contained
within the PDB file.
This can be used to look up certain PDB streams by name.
§Example
let file = std::fs::File::open("fixtures/self/foo.pdb")?;
let mut pdb = pdb::PDB::open(file)?;
let info = pdb.pdb_information()?;
let names = info.stream_names()?;
let mut v: Vec<_> = names.iter().map(|n| n.name.to_string()).collect();
v.sort();
assert_eq!(&v, &["mystream", "/LinkInfo", "/names", "/src/headerblock"]);