mirror of https://github.com/rust-lang/rust.git
link.exe: don't embed full path to PDB file in binary.
This commit is contained in:
parent
9ce37dc729
commit
3c49fe0cbd
|
@ -929,6 +929,15 @@ impl<'a> Linker for MsvcLinker<'a> {
|
|||
// from the CodeView line tables in the object files.
|
||||
self.cmd.arg("/DEBUG");
|
||||
|
||||
// Default to emitting only the file name of the PDB file into
|
||||
// the binary instead of the full path. Emitting the full path
|
||||
// may leak private information (such as user names).
|
||||
// See https://github.com/rust-lang/rust/issues/87825.
|
||||
//
|
||||
// This default behavior can be overridden by explicitly passing
|
||||
// `-Clink-arg=/PDBALTPATH:...` to rustc.
|
||||
self.cmd.arg("/PDBALTPATH:%_PDB%");
|
||||
|
||||
// This will cause the Microsoft linker to embed .natvis info into the PDB file
|
||||
let natvis_dir_path = self.sess.sysroot.join("lib\\rustlib\\etc");
|
||||
if let Ok(natvis_dir) = fs::read_dir(&natvis_dir_path) {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
include ../tools.mk
|
||||
|
||||
# only-windows-msvc
|
||||
|
||||
all:
|
||||
# Test that we don't have the full path to the PDB file in the binary
|
||||
$(RUSTC) main.rs -g --crate-name my_crate_name --crate-type bin
|
||||
$(CGREP) "my_crate_name.pdb" < $(TMPDIR)/my_crate_name.exe
|
||||
$(CGREP) -v "\\my_crate_name.pdb" < $(TMPDIR)/my_crate_name.exe
|
||||
|
||||
# Test that backtraces still can find debuginfo by checking that they contain symbol names and
|
||||
# source locations.
|
||||
RUST_BACKTRACE="full" $(TMPDIR)/my_crate_name.exe &> $(TMPDIR)/backtrace.txt || exit 0
|
||||
$(CGREP) "my_crate_name::main" < $(TMPDIR)/backtrace.txt
|
||||
$(CGREP) "pdb-alt-path\\main.rs:2" < $(TMPDIR)/backtrace.txt
|
||||
|
||||
# Test that explicitly passed `-Clink-arg=/PDBALTPATH:...` is respected
|
||||
$(RUSTC) main.rs -g --crate-name my_crate_name --crate-type bin -Clink-arg=/PDBALTPATH:abcdefg.pdb
|
||||
$(CGREP) "abcdefg.pdb" < $(TMPDIR)/my_crate_name.exe
|
||||
$(CGREP) -v "my_crate_name.pdb" < $(TMPDIR)/my_crate_name.exe
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
panic!("backtrace please");
|
||||
}
|
Loading…
Reference in New Issue