You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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`fnmain(){let _ = std::panic::catch_unwind(|| panic!());loop{ std::thread::park();}}
The text was updated successfully, but these errors were encountered:
One thing you might be able to try is to call SymCleanup perhaps? I think you'd need to call SymInitialize at some point afterwards though since this crate thinks that the symbols have already been initialized. I don't know precisely how this works internaly in dbghelp.dll though.
backtrace-rs
usesStackWalkEx
on Windows, which callsSymLoadModuleEx
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:
Steps to reproduce
The text was updated successfully, but these errors were encountered: