symsrv
This crate lets you download and cache pdb files from symbol servers, according to the rules from the _NT_SYMBOL_PATH
environment variable.
It exposes an async API and uses reqwest
and tokio::fs
.
The downloaded symbols are stored and never evicted.
Microsoft Documentation
Example
use PathBuf;
use ;
// Parse the _NT_SYMBOL_PATH environment variable.
let symbol_path =
get_symbol_path_from_environment;
// Create a symbol cache which follows the _NT_SYMBOL_PATH recipe.
let default_downstream = get_default_downstream_store; // "~/sym"
let symbol_cache = new;
// Download and cache a PDB file.
let relative_path: PathBuf =
.iter.collect;
let local_path = symbol_cache.get_file.await?;
// Use the PDB file.
open_pdb_at_path;
License
Licensed under either of
- Apache License, Version 2.0 (
LICENSE-APACHE
or http://www.apache.org/licenses/LICENSE-2.0) - MIT license (
LICENSE-MIT
or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.