Open
Description
backtrace-rs
uses StackWalkEx
on Windows, which calls SymLoadModuleEx
in turn. The symbol modules are never unloaded afterward, keeping the PDB files open until the process exits.
Normally this wouldn't be an issue, since most programs exit on panic anyway. But it's causing rust-lang/rust-analyzer#9932, where when a proc macro panics in rust-analyzer, it locks the PDB file and making subsequent build attempts fail:
note: LINK : fatal error LNK1201: error writing to program database 'target\debug\deps***_derive-fd4461955b1f812b.pdb';
check for insufficient disk space, invalid path, or insufficient privilege
Steps to reproduce
// Run with `RUST_BACKTRACE=1`
fn main() {
let _ = std::panic::catch_unwind(|| panic!());
loop { std::thread::park(); }
}