about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2018-11-14 17:48:17 +0100
committerRalf Jung <post@ralfj.de>2018-11-14 17:48:17 +0100
commitfb5135a6fc7e1517c562ea182827533354ae327d (patch)
treebe684a4999461408d3c4439ceaff53a43ba0a007
parent57a7c85f93d78b507c3779944b2978c617f91c5d (diff)
downloadrust-fb5135a6fc7e1517c562ea182827533354ae327d.tar.gz
rust-fb5135a6fc7e1517c562ea182827533354ae327d.zip
prettier miri backtrace printing
-rw-r--r--src/librustc/mir/interpret/error.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/librustc/mir/interpret/error.rs b/src/librustc/mir/interpret/error.rs
index c30d41f3403..e1b22c64ed6 100644
--- a/src/librustc/mir/interpret/error.rs
+++ b/src/librustc/mir/interpret/error.rs
@@ -191,16 +191,23 @@ fn print_backtrace(backtrace: &mut Backtrace) -> String {
     write!(trace_text, "backtrace frames: {}\n", backtrace.frames().len()).unwrap();
     'frames: for (i, frame) in backtrace.frames().iter().enumerate() {
         if frame.symbols().is_empty() {
-            write!(trace_text, "{}: no symbols\n", i).unwrap();
+            write!(trace_text, "  {}: no symbols\n", i).unwrap();
         }
+        let mut first = true;
         for symbol in frame.symbols() {
-            write!(trace_text, "{}: ", i).unwrap();
+            if first {
+                write!(trace_text, "  {}: ", i).unwrap();
+                first = false;
+            } else {
+                let len = i.to_string().len();
+                write!(trace_text, "  {}  ", " ".repeat(len)).unwrap();
+            }
             if let Some(name) = symbol.name() {
                 write!(trace_text, "{}\n", name).unwrap();
             } else {
                 write!(trace_text, "<unknown>\n").unwrap();
             }
-            write!(trace_text, "\tat ").unwrap();
+            write!(trace_text, "           at ").unwrap();
             if let Some(file_path) = symbol.filename() {
                 write!(trace_text, "{}", file_path.display()).unwrap();
             } else {