fn get_pe_pdb_object_info()

in src/dumper.rs [142:167]


fn get_pe_pdb_object_info(
    buf: &[u8],
    path: &Path,
    filename: &str,
    mapping: Option<Arc<PathMappings>>,
    symbol_server: Option<&str>,
    emit_inlines: bool,
) -> common::Result<ObjectInfo> {
    let symbol_server = crate::cache::get_sym_servers(symbol_server);
    let res = windows::utils::get_pe_pdb_buf(path, buf, symbol_server.as_ref());

    if let Some((pe, pdb_buf, pdb_name)) = res {
        let pdb = PdbObject::parse(&pdb_buf)?;
        let pdb = ObjectInfo::from_pdb(
            pdb,
            &pdb_name,
            Some(filename),
            Some(pe),
            mapping,
            emit_inlines,
        )?;
        Ok(pdb)
    } else {
        anyhow::bail!("No pdb file found")
    }
}