diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index d40340e4d8c09..188d185e5469c 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -1,5 +1,5 @@ use std::ffi::{OsStr, OsString}; -use std::fs::{self, File}; +use std::fs::File; use std::io::prelude::*; use std::path::{Path, PathBuf}; use std::{env, iter, mem, str}; @@ -1098,26 +1098,6 @@ impl<'a> Linker for MsvcLinker<'a> { // `-Clink-arg=/PDBALTPATH:...` to rustc. self.link_arg("/PDBALTPATH:%_PDB%"); - // This will cause the Microsoft linker to embed .natvis info into the PDB file - let natvis_dir_path = self.sess.opts.sysroot.path().join("lib\\rustlib\\etc"); - if let Ok(natvis_dir) = fs::read_dir(&natvis_dir_path) { - for entry in natvis_dir { - match entry { - Ok(entry) => { - let path = entry.path(); - if path.extension() == Some("natvis".as_ref()) { - let mut arg = OsString::from("/NATVIS:"); - arg.push(path); - self.link_arg(arg); - } - } - Err(error) => { - self.sess.dcx().emit_warn(errors::NoNatvisDirectory { error }); - } - } - } - } - // This will cause the Microsoft linker to embed .natvis info for all crates into the PDB file for path in natvis_debugger_visualizers { let mut arg = OsString::from("/NATVIS:"); diff --git a/compiler/rustc_codegen_ssa/src/errors.rs b/compiler/rustc_codegen_ssa/src/errors.rs index 97884c202d302..72546baf8a224 100644 --- a/compiler/rustc_codegen_ssa/src/errors.rs +++ b/compiler/rustc_codegen_ssa/src/errors.rs @@ -101,12 +101,6 @@ pub(crate) struct LinkerUnsupportedModifier; #[diag("exporting symbols not implemented yet for L4Bender")] pub(crate) struct L4BenderExportingSymbolsUnimplemented; -#[derive(Diagnostic)] -#[diag("error enumerating natvis directory: {$error}")] -pub(crate) struct NoNatvisDirectory { - pub error: Error, -} - #[derive(Diagnostic)] #[diag("cached cgu {$cgu_name} should have an object file, but doesn't")] pub(crate) struct NoSavedObjectFile<'a> { diff --git a/src/etc/natvis/liballoc.natvis b/library/alloc/alloc.natvis similarity index 100% rename from src/etc/natvis/liballoc.natvis rename to library/alloc/alloc.natvis diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index f66dc648f809b..fdf841d98c0ac 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -60,6 +60,7 @@ #![allow(incomplete_features)] #![allow(unused_attributes)] #![stable(feature = "alloc", since = "1.36.0")] +#![debugger_visualizer(natvis_file = "../alloc.natvis")] #![doc( html_playground_url = "https://play.rust-lang.org/", issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/", diff --git a/src/etc/natvis/libcore.natvis b/library/core/core.natvis similarity index 100% rename from src/etc/natvis/libcore.natvis rename to library/core/core.natvis diff --git a/src/etc/natvis/intrinsic.natvis b/library/core/intrinsic.natvis similarity index 100% rename from src/etc/natvis/intrinsic.natvis rename to library/core/intrinsic.natvis diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index 6bc184f80497a..91c1823202747 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -44,6 +44,8 @@ //! called. The `lang` attribute is called `eh_personality`. #![stable(feature = "core", since = "1.6.0")] +#![debugger_visualizer(natvis_file = "../core.natvis")] +#![debugger_visualizer(natvis_file = "../intrinsic.natvis")] #![doc( html_playground_url = "https://play.rust-lang.org/", issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/", diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 09d81f11e0a45..9b304f04db8db 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -214,6 +214,7 @@ //! [slice]: prim@slice #![cfg_attr(not(restricted_std), stable(feature = "rust1", since = "1.0.0"))] +#![debugger_visualizer(natvis_file = "../std.natvis")] #![cfg_attr( restricted_std, unstable( diff --git a/src/etc/natvis/libstd.natvis b/library/std/std.natvis similarity index 100% rename from src/etc/natvis/libstd.natvis rename to library/std/std.natvis diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs index b0feea13b0485..832f9cecaacc2 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs @@ -712,26 +712,12 @@ impl Step for DebuggerScripts { } fn run(self, builder: &Builder<'_>) { - let target = self.target; let sysroot = self.sysroot; let dst = sysroot.join("lib/rustlib/etc"); t!(fs::create_dir_all(&dst)); let cp_debugger_script = |file: &str| { builder.install(&builder.src.join("src/etc/").join(file), &dst, FileType::Regular); }; - if target.contains("windows-msvc") { - // windbg debugger scripts - builder.install( - &builder.src.join("src/etc/rust-windbg.cmd"), - &sysroot.join("bin"), - FileType::Script, - ); - - cp_debugger_script("natvis/intrinsic.natvis"); - cp_debugger_script("natvis/liballoc.natvis"); - cp_debugger_script("natvis/libcore.natvis"); - cp_debugger_script("natvis/libstd.natvis"); - } cp_debugger_script("rust_types.py"); diff --git a/src/etc/rust-windbg.cmd b/src/etc/rust-windbg.cmd deleted file mode 100644 index 2deb2a03a3976..0000000000000 --- a/src/etc/rust-windbg.cmd +++ /dev/null @@ -1,8 +0,0 @@ -@echo off -setlocal - -for /f "delims=" %%i in ('rustc --print=sysroot') do set rustc_sysroot=%%i - -set rust_etc=%rustc_sysroot%\lib\rustlib\etc - -windbg -c ".nvload %rust_etc%\intrinsic.natvis; .nvload %rust_etc%\liballoc.natvis; .nvload %rust_etc%\libcore.natvis;" %* diff --git a/src/tools/compiletest/src/lib.rs b/src/tools/compiletest/src/lib.rs index 0836caa590f81..139b313db74ac 100644 --- a/src/tools/compiletest/src/lib.rs +++ b/src/tools/compiletest/src/lib.rs @@ -714,8 +714,6 @@ fn common_inputs_stamp(config: &Config) -> Stamp { stamp.add_path(&path); } - stamp.add_dir(&src_root.join("src/etc/natvis")); - stamp.add_dir(&config.target_run_lib_path); if let Some(ref rustdoc_path) = config.rustdoc_path {