Unnamed repository; edit this file 'description' to name the repository.
Merge #11073
11073: fix: Fix windows not finding the pdb file r=lnicola a=Veykril Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10371 Co-authored-by: Lukas Wirth <[email protected]>
bors[bot] 2021-12-21
parent d3aa257 · parent 4a5c8c6 · commit c5722a6
-rw-r--r--crates/rust-analyzer/src/bin/main.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/bin/main.rs b/crates/rust-analyzer/src/bin/main.rs
index ef90610f85..567cdc48ef 100644
--- a/crates/rust-analyzer/src/bin/main.rs
+++ b/crates/rust-analyzer/src/bin/main.rs
@@ -93,6 +93,18 @@ fn try_main() -> Result<()> {
}
fn setup_logging(log_file: Option<&Path>) -> Result<()> {
+ if cfg!(windows) {
+ // This is required so that windows finds our pdb that is placed right beside the exe.
+ // By default it doesn't look at the folder the exe resides in, only in the current working
+ // directory which we set to the project workspace.
+ // https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/general-environment-variables
+ // https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-syminitialize
+ if let Ok(path) = env::current_exe() {
+ if let Some(path) = path.parent() {
+ env::set_var("_NT_SYMBOL_PATH", path);
+ }
+ }
+ }
if env::var("RUST_BACKTRACE").is_err() {
env::set_var("RUST_BACKTRACE", "short");
}