about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2019-10-28 22:23:41 -0400
committerAaron Hill <aa1ronham@gmail.com>2019-11-11 15:14:34 -0500
commit8ff4d41ba486db16446a70ef94a3d58285880358 (patch)
tree2e5ca5c0c7230a2af110c3259d4a558beb44adb0 /src/libstd
parent4f25c91a0530d2337bff2b27c938e458a95e943b (diff)
downloadrust-8ff4d41ba486db16446a70ef94a3d58285880358.tar.gz
rust-8ff4d41ba486db16446a70ef94a3d58285880358.zip
Don't attempt to get cwd when printing backtrace under Miri
This allows Miri to print backtraces in isolation mode
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys_common/backtrace.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libstd/sys_common/backtrace.rs b/src/libstd/sys_common/backtrace.rs
index 9c406ec39cc..d7296b43fbe 100644
--- a/src/libstd/sys_common/backtrace.rs
+++ b/src/libstd/sys_common/backtrace.rs
@@ -66,7 +66,14 @@ unsafe fn _print(w: &mut dyn Write, format: PrintFmt) -> io::Result<()> {
 }
 
 unsafe fn _print_fmt(fmt: &mut fmt::Formatter<'_>, print_fmt: PrintFmt) -> fmt::Result {
-    let cwd = env::current_dir().ok();
+    // Always 'fail' to get the cwd when running under Miri -
+    // this allows Miri to display backtraces in isolation mode
+    let cwd = if !cfg!(miri) {
+        env::current_dir().ok()
+    } else {
+        None
+    };
+
     let mut print_path = move |fmt: &mut fmt::Formatter<'_>, bows: BytesOrWideString<'_>| {
         output_filename(fmt, bows, print_fmt, cwd.as_ref())
     };