about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2023-05-07 19:33:58 -0400
committerBen Kimock <kimockb@gmail.com>2023-05-09 20:34:16 -0400
commitc3e7ff4609ea14126077de16f2bd2dc4cc3e2cde (patch)
treefaceb9ed4e9d1746a3f457a3b766e38863d90c94 /src
parent84f80f1fc9f89c8abbbbcbe55cc0bd1d0ae21c28 (diff)
downloadrust-c3e7ff4609ea14126077de16f2bd2dc4cc3e2cde.tar.gz
rust-c3e7ff4609ea14126077de16f2bd2dc4cc3e2cde.zip
Adopt the measureme output naming strategy from rustc
Diffstat (limited to 'src')
-rw-r--r--src/tools/miri/src/machine.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tools/miri/src/machine.rs b/src/tools/miri/src/machine.rs
index 21c5a9c1b70..b91efae3bcb 100644
--- a/src/tools/miri/src/machine.rs
+++ b/src/tools/miri/src/machine.rs
@@ -4,6 +4,8 @@
 use std::borrow::Cow;
 use std::cell::RefCell;
 use std::fmt;
+use std::path::Path;
+use std::process;
 
 use rand::rngs::StdRng;
 use rand::SeedableRng;
@@ -498,7 +500,17 @@ impl<'mir, 'tcx> MiriMachine<'mir, 'tcx> {
         let layouts =
             PrimitiveLayouts::new(layout_cx).expect("Couldn't get layouts of primitive types");
         let profiler = config.measureme_out.as_ref().map(|out| {
-            measureme::Profiler::new(out).expect("Couldn't create `measureme` profiler")
+            let crate_name = layout_cx
+                .tcx
+                .sess
+                .opts
+                .crate_name
+                .clone()
+                .unwrap_or_else(|| "unknown-crate".to_string());
+            let pid = process::id();
+            let filename = format!("{crate_name}-{pid:07}");
+            let path = Path::new(out).join(filename);
+            measureme::Profiler::new(path).expect("Couldn't create `measureme` profiler")
         });
         let rng = StdRng::seed_from_u64(config.seed.unwrap_or(0));
         let borrow_tracker = config.borrow_tracker.map(|bt| bt.instantiate_global_state(config));