Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial debug fmt for Backtrace #69038

Merged
merged 15 commits into from
Feb 13, 2020
Merged

Conversation

yaahc
Copy link
Member

@yaahc yaahc commented Feb 10, 2020

Fixes the first point in #65280

related to #53487

@rust-highfive
Copy link
Collaborator

r? @shepmaster

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 10, 2020
@yaahc yaahc requested a review from alexcrichton February 10, 2020 19:49
@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

I'm starting with this most basic version of a Debug format that just derives everything and doesn't force any symbol resolution as a starting point for the rest of the PR, I still haven't tested how this looks in practice because compile times but I'm working on getting a unit test that I can use as a playground to render the format pre and post resolution so I can paste that into this issue for review.

@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

This is the current format from this PR, lmk what further changes are necessary.

uncaptured: Backtrace { inner: Disabled }
captured: Backtrace { inner: Captured(Mutex { data: Capture { actual_start: 2, resolved: false, frames: [BacktraceFrame { frame: Frame { ip: 0x55c1fc866e5d, symbol_address: 0x55c1fc866de0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x55c1fc866dd0, symbol_address: 0x55c1fc866dc0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x55c1fc9469d0, symbol_address: 0x55c1fc946960 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf110f, symbol_address: 0x7fb01daf10d0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84d0c4, symbol_address: 0x7fb01d84d0b0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf32fc, symbol_address: 0x7fb01daf32c0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01dafc16f, symbol_address: 0x7fb01dafc000 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf9264, symbol_address: 0x7fb01daf9040 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf3426, symbol_address: 0x7fb01daf3400 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84d0c4, symbol_address: 0x7fb01d84d0b0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf31ba, symbol_address: 0x7fb01daf3170 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf3923, symbol_address: 0x7fb01daf38c0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d81ee4f, symbol_address: 0x7fb01d81ee10 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d81eea3, symbol_address: 0x7fb01d81ee90 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84237a, symbol_address: 0x7fb01d842360 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d847f66, symbol_address: 0x7fb01d847f60 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01dd5c6db, symbol_address: 0x7fb01dd5c600 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d2de88f, symbol_address: 0x7fb01d2de889 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x0, symbol_address: 0x0 }, symbols: [] }] } }) }
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

resolved: Backtrace { inner: Captured(Mutex { data: Capture { actual_start: 2, resolved: true, frames: [BacktraceFrame { frame: Frame { ip: 0x55c1fc866e5d, symbol_address: 0x55c1fc866de0 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::Backtrace::create::h303e7cdb3e3586ac), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x55c1fc866dd0, symbol_address: 0x55c1fc866dc0 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::Backtrace::force_capture::hdf88ce801a691ed1), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x55c1fc9469d0, symbol_address: 0x55c1fc946960 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf110f, symbol_address: 0x7fb01daf10d0 }, symbols: [BacktraceSymbol { name: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84d0c4, symbol_address: 0x7fb01d84d0b0 }, symbols: [BacktraceSymbol { name: Some("__rust_maybe_catch_panic"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf32fc, symbol_address: 0x7fb01daf32c0 }, symbols: [BacktraceSymbol { name: Some(std::panicking::try::hc8e0ebad5360bb9e), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01dafc16f, symbol_address: 0x7fb01dafc000 }, symbols: [BacktraceSymbol { name: Some(test::run_test_in_process::h23ee0e24f420835e), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf9264, symbol_address: 0x7fb01daf9040 }, symbols: [BacktraceSymbol { name: Some(std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf3426, symbol_address: 0x7fb01daf3400 }, symbols: [BacktraceSymbol { name: Some(std::panicking::try::do_call::he44bd66b51853864), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84d0c4, symbol_address: 0x7fb01d84d0b0 }, symbols: [BacktraceSymbol { name: Some("__rust_maybe_catch_panic"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf31ba, symbol_address: 0x7fb01daf3170 }, symbols: [BacktraceSymbol { name: Some(std::panicking::try::h9e6571690ab8a505), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01daf3923, symbol_address: 0x7fb01daf38c0 }, symbols: [BacktraceSymbol { name: Some(core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d81ee4f, symbol_address: 0x7fb01d81ee10 }, symbols: [BacktraceSymbol { name: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d81eea3, symbol_address: 0x7fb01d81ee90 }, symbols: [BacktraceSymbol { name: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d84237a, symbol_address: 0x7fb01d842360 }, symbols: [BacktraceSymbol { name: Some(std::sys_common::thread::start_thread::h44e11c2292c6e0da), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d847f66, symbol_address: 0x7fb01d847f60 }, symbols: [BacktraceSymbol { name: Some(std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01dd5c6db, symbol_address: 0x7fb01dd5c600 }, symbols: [BacktraceSymbol { name: Some("start_thread"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fb01d2de88f, symbol_address: 0x7fb01d2de889 }, symbols: [BacktraceSymbol { name: Some("__clone"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x0, symbol_address: 0x0 }, symbols: [BacktraceSymbol { name: None, filename: None, lineno: None }] }] } }) }

As generated by this small snippet

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn debug_backtrace_fmt() {
        let bt = Backtrace::capture();
        eprintln!("uncaptured: {:?}", bt);
        let bt = Backtrace::force_capture();
        eprintln!("captured: {:?}", bt);
        eprintln!("display print: {}", bt);
        eprintln!("resolved: {:?}", bt);
        unimplemented!();
    }
}

cc @dtolnay @seanmonstar @mitsuhiko

@dtolnay
Copy link
Member

dtolnay commented Feb 10, 2020

r? @dtolnay

@rust-highfive rust-highfive assigned dtolnay and unassigned shepmaster Feb 10, 2020
Copy link
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That representation looks extremely verbose to me. I expect that debug-printed backtraces are going to be a thing that humans see somewhat often (unfortunately) from unwrapped or debug printed error objects containing a backtrace. Could you see if you can strip out everything that wouldn't be informative to the reader?

Before:

Backtrace {
    inner: Captured(
        Mutex {
            data: Capture {
                actual_start: 2,
                resolved: true,
                frames: [
                    BacktraceFrame {
                        frame: Frame {
                            ip: 0x55c1fc866e5d,
                            symbol_address: 0x55c1fc866de0,
                        },
                        symbols: [
                            BacktraceSymbol {
                                name: Some(
                                    std::backtrace::Backtrace::create,
                                ),
                                filename: None,
                                lineno: None,
                            },
                        ],
                    },
                    BacktraceFrame {
                        frame: Frame {
                            ip: 0x55c1fc866dd0,
                            symbol_address: 0x55c1fc866dc0,
                        },
                        symbols: [
                            BacktraceSymbol {
                                name: Some(
                                    std::backtrace::Backtrace::force_capture,
                                ),
                                filename: None,
                                lineno: None,
                            },
                        ],
                    },
                    ...
                    ...
                    ...
                ],
            },
        },
    ),
}

More reasonable:

Backtrace [
    "std::backtrace::Backtrace::create",
    "std::backtrace::Backtrace::force_capture",
    "core::ops::function::FnOnce::call_once @ /rustc/src/libcore/ops/function.rs:231",
]

or list-of-maps style as suggested in #65280:

Backtrace [
    { fn: "std::backtrace::Backtrace::create" },
    { fn: "std::backtrace::Backtrace::force_capture" },
    { fn: "core::ops::function::FnOnce::call_once", file: "/rustc/src/libcore/ops/function.rs", line: 231 },
]

@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

Sure, but I'm not sure how to handle the fact that a backtrace frame can have multiple symbols. Also, I'd personally prefer the to use Some(..) / None to indicate the presence or absense of a field over having the fields be optionally printed or formatted into the single string per frame.

How do you feel about this format

Backtrace [
    { [ fn: Some("std::backtrace::Backtrace::create"), file: None, line: None ] },
    { [ fn: Some("std::backtrace::Backtrace::force_capture"), file: None, line: None ] },
    { [ fn: Some("core::ops::function::FnOnce::call_once"), file: Some("/rustc/src/libcore/ops/function.rs"), line: Some(231) },
]

@dtolnay
Copy link
Member

dtolnay commented Feb 10, 2020

  • Regarding multiple symbols, you should match the behavior of the Display impl (https://github.com/rust-lang/rust/blob/1.41.0/src/libstd/backtrace.rs#L304-L318) of rendering just symbols, not frames, for frames that have any symbols. You don't need an additional level of nesting like you showed.

  • Regarding Some/None, I don't think adding file: None, line: None to every line is valuable, it would just be noise. The goal is to expose just the information from the current backtrace representation but in a format that isn't completely out of place when inserted into the middle of a Debug printed struct.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-02-10T21:16:04.3738146Z ========================== Starting Command Output ===========================
2020-02-10T21:16:04.3739375Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/b7c60885-cd42-4005-b6de-fbb3217c4f3b.sh
2020-02-10T21:16:04.3739421Z 
2020-02-10T21:16:04.3742723Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-10T21:16:04.3747857Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-10T21:16:04.3749434Z Task         : Get sources
2020-02-10T21:16:04.3749465Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-10T21:16:04.3749494Z Version      : 1.0.0
2020-02-10T21:16:04.3749523Z Author       : Microsoft
---
2020-02-10T21:16:05.2041904Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-10T21:16:05.2117749Z ##[command]git config gc.auto 0
2020-02-10T21:16:05.2186960Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-10T21:16:05.2250780Z ##[command]git config --get-all http.proxy
2020-02-10T21:16:05.2392119Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/69038/merge:refs/remotes/pull/69038/merge
---
2020-02-10T22:12:50.9746056Z .................................................................................................... 1700/9625
2020-02-10T22:12:55.7227809Z .................................................................................................... 1800/9625
2020-02-10T22:13:07.5722556Z .............................i...................................................................... 1900/9625
2020-02-10T22:13:14.2055778Z .................................................................................................... 2000/9625
2020-02-10T22:13:27.9675106Z ...................iiiii............................................................................ 2100/9625
2020-02-10T22:13:37.5152393Z .................................................................................................... 2300/9625
2020-02-10T22:13:39.8342465Z .................................................................................................... 2400/9625
2020-02-10T22:13:44.5163986Z .................................................................................................... 2500/9625
2020-02-10T22:14:04.6911641Z .................................................................................................... 2600/9625
---
2020-02-10T22:16:35.1191277Z ......................................................................i...............i............. 4900/9625
2020-02-10T22:16:42.4680448Z .................................................................................................... 5000/9625
2020-02-10T22:16:50.1364069Z .................................................................................................... 5100/9625
2020-02-10T22:16:54.6249787Z ............i....................................................................................... 5200/9625
2020-02-10T22:17:05.2259031Z ......................................................................................ii.ii........i 5300/9625
2020-02-10T22:17:12.7905735Z ........................i........................................................................... 5500/9625
2020-02-10T22:17:20.8853804Z .................................................................................................... 5600/9625
2020-02-10T22:17:28.9210739Z ..........................................................................i......................... 5700/9625
2020-02-10T22:17:36.0222048Z .................................................................................................... 5800/9625
2020-02-10T22:17:36.0222048Z .................................................................................................... 5800/9625
2020-02-10T22:17:42.1331552Z .................................................................................................... 5900/9625
2020-02-10T22:17:51.8170801Z ..................................................................ii...i..ii...........i............ 6000/9625
2020-02-10T22:18:12.2764491Z .................................................................................................... 6200/9625
2020-02-10T22:18:19.5860612Z .................................................................................................... 6300/9625
2020-02-10T22:18:19.5860612Z .................................................................................................... 6300/9625
2020-02-10T22:18:27.2474248Z ..............................................................................................i..ii. 6400/9625
2020-02-10T22:18:55.4449095Z .................................................................................................... 6600/9625
2020-02-10T22:19:04.9639452Z .................................................................................i.................. 6700/9625
2020-02-10T22:19:07.0652415Z .................................................................................................... 6800/9625
2020-02-10T22:19:09.2905335Z .........................................................................................i.......... 6900/9625
---
2020-02-10T22:20:44.9493709Z .................................................................................................... 7600/9625
2020-02-10T22:20:48.8117411Z .................................................................................................... 7700/9625
2020-02-10T22:20:54.1515616Z .................................................................................................... 7800/9625
2020-02-10T22:21:02.1518884Z .................................................................................................... 7900/9625
2020-02-10T22:21:10.7530908Z ...................................................................iiiiiii.i........................ 8000/9625
2020-02-10T22:21:25.8828478Z .......i......i..................................................................................... 8200/9625
2020-02-10T22:21:31.2802725Z .................................................................................................... 8300/9625
2020-02-10T22:21:44.3010359Z .................................................................................................... 8400/9625
2020-02-10T22:21:53.5602129Z .................................................................................................... 8500/9625
---
2020-02-10T22:24:15.7910478Z  finished in 7.276
2020-02-10T22:24:15.7910791Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:15.7910829Z 
2020-02-10T22:24:15.7910871Z running 178 tests
2020-02-10T22:24:18.6187918Z iiii......i...........ii..iiii...i....i...........i............i..i..................i....i......... 100/178
2020-02-10T22:24:20.9070859Z ...i.i.i...iii..iiiiiiiiiiiiiiii.......................iii............ii......
2020-02-10T22:24:20.9072005Z 
2020-02-10T22:24:20.9074078Z  finished in 5.381
2020-02-10T22:24:20.9248390Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:21.0871722Z 
---
2020-02-10T22:24:23.7910095Z  finished in 2.071
2020-02-10T22:24:23.7910393Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:23.7910434Z 
2020-02-10T22:24:23.7910516Z running 9 tests
2020-02-10T22:24:23.7910821Z iiiiiiiii
2020-02-10T22:24:23.7911167Z 
2020-02-10T22:24:23.7911224Z  finished in 0.151
2020-02-10T22:24:23.7911525Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:23.7911565Z 
---
2020-02-10T22:24:42.6950763Z  finished in 19.511
2020-02-10T22:24:42.7146198Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:43.3022233Z 
2020-02-10T22:24:43.3060338Z running 116 tests
2020-02-10T22:24:56.0315892Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii..........i.....i..i.......ii.i.ii. 100/116
2020-02-10T22:24:57.7877785Z ....iiii.....ii.
2020-02-10T22:24:57.7881816Z 
2020-02-10T22:24:57.7887144Z  finished in 15.074
2020-02-10T22:24:57.7892155Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-10T22:24:57.7892776Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2020-02-10T22:38:04.5315773Z 
2020-02-10T22:38:04.5327440Z    Doc-tests core
2020-02-10T22:38:09.1630912Z 
2020-02-10T22:38:09.1631834Z running 2471 tests
2020-02-10T22:38:17.9778801Z ......iiiii......................................................................................... 100/2471
2020-02-10T22:38:27.0103272Z ..................................................................................ii................ 200/2471
2020-02-10T22:38:46.5435238Z .................i.................................................................................. 400/2471
2020-02-10T22:38:46.5435238Z .................i.................................................................................. 400/2471
2020-02-10T22:38:55.8034017Z ......................................................................i..i..................iiii.... 500/2471
2020-02-10T22:39:11.3983262Z .................................................................................................... 700/2471
2020-02-10T22:39:19.5972233Z .................................................................................................... 800/2471
2020-02-10T22:39:27.6918051Z .................................................................................................... 900/2471
2020-02-10T22:39:35.8973210Z .................................................................................................... 1000/2471
---
2020-02-10T22:42:54.0602964Z .....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
2020-02-10T22:42:54.0719500Z .................. 600/761
2020-02-10T22:42:56.0997571Z .....................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:633:13
2020-02-10T22:42:56.0997909Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:587:13
2020-02-10T22:42:56.1006534Z ....thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:563:13
2020-02-10T22:42:56.1014394Z thread '.<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:694:13
2020-02-10T22:42:56.1023122Z ...thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
2020-02-10T22:42:56.1029596Z  right: `2`', src/libstd/sync/mutex.rs:657:13
2020-02-10T22:42:56.1076915Z ..........thread '<unnamed>' panicked at 'test panic in inner thread to poison RwLock', src/libstd/sync/rwlock.rs:792:13
2020-02-10T22:42:56.1089883Z ...thread '<unnamed>' panicked at 'test panic in inner thread to poison RwLock', src/libstd/sync/rwlock.rs:768:13
2020-02-10T22:42:56.1102512Z ..thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/rwlock.rs:704:13
---
2020-02-10T22:42:58.7918766Z .thread '<unnamed>' panicked at 'Box<Any>', src/libstd/thread/mod.rs:1727:37
2020-02-10T22:43:04.2842444Z .............
2020-02-10T22:43:04.2843490Z failures:
2020-02-10T22:43:04.2843685Z 
2020-02-10T22:43:04.2844532Z ---- backtrace::tests::debug_backtrace_fmt stdout ----
2020-02-10T22:43:04.2844934Z uncaptured: Backtrace { inner: Disabled }
2020-02-10T22:43:04.2845428Z captured: Backtrace { inner: Captured(Mutex { data: Capture { actual_start: 2, resolved: false, frames: [BacktraceFrame { frame: Frame { ip: 0x55cb610e94ed, symbol_address: 0x55cb610e9470 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x55cb610e9460, symbol_address: 0x55cb610e9450 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x55cb60fa0440, symbol_address: 0x55cb60fa03d0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe38955990f, symbol_address: 0x7fe3895598d0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892baeb7, symbol_address: 0x7fe3892baea0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe389578acf, symbol_address: 0x7fe3895786c0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe38954b689, symbol_address: 0x7fe38954b660 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe389550419, symbol_address: 0x7fe3895503f0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892baeb7, symbol_address: 0x7fe3892baea0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe389551cf6, symbol_address: 0x7fe389551c70 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe38928358f, symbol_address: 0x7fe389283550 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892b8d80, symbol_address: 0x7fe3892b8cf0 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe3897be6db, symbol_address: 0x7fe3897be600 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x7fe388d4c88f, symbol_address: 0x7fe388d4c889 }, symbols: [] }, BacktraceFrame { frame: Frame { ip: 0x0, symbol_address: 0x0 }, symbols: [] }] } }) }
2020-02-10T22:43:04.2845803Z display print: stack backtrace:
2020-02-10T22:43:04.2846007Z    0: std::backtrace::tests::debug_backtrace_fmt
2020-02-10T22:43:04.2846252Z    1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-10T22:43:04.2846897Z    3: test::run_test::run_test_inner::{{closure}}
2020-02-10T22:43:04.2847105Z    4: std::sys_common::backtrace::__rust_begin_short_backtrace
2020-02-10T22:43:04.2847305Z    5: std::panicking::try::do_call
2020-02-10T22:43:04.2847517Z    6: __rust_maybe_catch_panic
2020-02-10T22:43:04.2847517Z    6: __rust_maybe_catch_panic
2020-02-10T22:43:04.2847713Z    7: core::ops::function::FnOnce::call_once{{vtable.shim}}
2020-02-10T22:43:04.2847913Z    8: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-10T22:43:04.2848130Z    9: std::sys::unix::thread::Thread::new::thread_start
2020-02-10T22:43:04.2848320Z   10: start_thread
2020-02-10T22:43:04.2848528Z   11: __clone
2020-02-10T22:43:04.2848856Z 
2020-02-10T22:43:04.2849934Z resolved: Backtrace { inner: Captured(Mutex { data: Capture { actual_start: 2, resolved: true, frames: [BacktraceFrame { frame: Frame { ip: 0x55cb610e94ed, symbol_address: 0x55cb610e9470 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::Backtrace::create::h26aebea81d476f1b), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x55cb610e9460, symbol_address: 0x55cb610e9450 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::Backtrace::force_capture::hf39c0dfe00bac326), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x55cb60fa0440, symbol_address: 0x55cb60fa03d0 }, symbols: [BacktraceSymbol { name: Some(std::backtrace::tests::debug_backtrace_fmt::h71b86f37709cb25c), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe38955990f, symbol_address: 0x7fe3895598d0 }, symbols: [BacktraceSymbol { name: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h32a44b4cd9f1561a), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892baeb7, symbol_address: 0x7fe3892baea0 }, symbols: [BacktraceSymbol { name: Some("__rust_maybe_catch_panic"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe389578acf, symbol_address: 0x7fe3895786c0 }, symbols: [BacktraceSymbol { name: Some(test::run_test::run_test_inner::{{closure}}::hdb23088fbce26e99), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe38954b689, symbol_address: 0x7fe38954b660 }, symbols: [BacktraceSymbol { name: Some(std::sys_common::backtrace::__rust_begin_short_backtrace::h4642da7dd96fa758), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe389550419, symbol_address: 0x7fe3895503f0 }, symbols: [BacktraceSymbol { name: Some(std::panicking::try::do_call::h81299d9bc08a2e2c), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892baeb7, symbol_address: 0x7fe3892baea0 }, symbols: [BacktraceSymbol { name: Some("__rust_maybe_catch_panic"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe389551cf6, symbol_address: 0x7fe389551c70 }, symbols: [BacktraceSymbol { name: Some(core::ops::function::FnOnce::call_once{{vtable.shim}}::he89292d7784fbe20), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe38928358f, symbol_address: 0x7fe389283550 }, symbols: [BacktraceSymbol { name: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hfe0665775bd2b721), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe3892b8d80, symbol_address: 0x7fe3892b8cf0 }, symbols: [BacktraceSymbol { name: Some(std::sys::unix::thread::Thread::new::thread_start::h36d1e478cadb3b18), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe3897be6db, symbol_address: 0x7fe3897be600 }, symbols: [BacktraceSymbol { name: Some("start_thread"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x7fe388d4c88f, symbol_address: 0x7fe388d4c889 }, symbols: [BacktraceSymbol { name: Some("__clone"), filename: None, lineno: None }] }, BacktraceFrame { frame: Frame { ip: 0x0, symbol_address: 0x0 }, symbols: [BacktraceSymbol { name: None, filename: None, lineno: None }] }] } }) }
2020-02-10T22:43:04.2851175Z thread '<unnamed>' panicked at 'not implemented', src/libstd/backtrace.rs:389:9
2020-02-10T22:43:04.2851669Z 
2020-02-10T22:43:04.2851836Z 
2020-02-10T22:43:04.2852015Z failures:
2020-02-10T22:43:04.2854945Z     backtrace::tests::debug_backtrace_fmt
2020-02-10T22:43:04.2854945Z     backtrace::tests::debug_backtrace_fmt
2020-02-10T22:43:04.2855208Z 
2020-02-10T22:43:04.2855422Z test result: FAILED. 760 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2020-02-10T22:43:04.2855622Z 
2020-02-10T22:43:04.2868610Z error: test failed, to rerun pass '-p std --lib'
2020-02-10T22:43:04.2897647Z 
2020-02-10T22:43:04.2902435Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "std" "--" "--quiet"
2020-02-10T22:43:04.2902533Z expected success, got: exit code: 101
2020-02-10T22:43:04.2902656Z 
---
2020-02-10T22:43:04.2994938Z   local time: Mon Feb 10 22:43:04 UTC 2020
2020-02-10T22:43:04.8525558Z   network time: Mon, 10 Feb 2020 22:43:04 GMT
2020-02-10T22:43:04.8526973Z == end clock drift check ==
2020-02-10T22:43:05.2451095Z 
2020-02-10T22:43:05.2565917Z ##[error]Bash exited with code '1'.
2020-02-10T22:43:05.2580653Z ##[section]Finishing: Run build
2020-02-10T22:43:05.2599451Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-10T22:43:05.2601027Z Task         : Get sources
2020-02-10T22:43:05.2601079Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-10T22:43:05.2601130Z Version      : 1.0.0
2020-02-10T22:43:05.2601162Z Author       : Microsoft
2020-02-10T22:43:05.2601162Z Author       : Microsoft
2020-02-10T22:43:05.2601213Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-10T22:43:05.2601251Z ==============================================================================
2020-02-10T22:43:05.6753233Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-10T22:43:05.6790155Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-10T22:43:05.6903259Z Cleaning up task key
2020-02-10T22:43:05.6904113Z Start cleaning up orphan processes.
2020-02-10T22:43:05.7010552Z Terminate orphan process: pid (4584) (python)
2020-02-10T22:43:05.7259042Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

you should match the behavior of the Display impl

The logic within backtrace-rs doesn't create a new header when printing mulitple symbols within the same frame, so it has a notion internally of which symbol within a frame its rendering and it does not format symbols uniformly regardless of what frame they're from.

@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

Okay, independent of my previous comment, here is the current format @dtolnay with the changes you've requested.

uncaptured: disabled backtrace
captured: Backtrace [ { fn: Some(std::backtrace::Backtrace::create::ha19bbd9f10287f80) },  { fn: Some(std::backtrace::Backtrace::force_capture::h5e8065a48ff91123) },  { fn: Some(std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892) },  { fn: Some("__rust_maybe_catch_panic") },  { fn: Some(std::panicking::try::hc8e0ebad5360bb9e) },  { fn: Some(test::run_test_in_process::h23ee0e24f420835e) },  { fn: Some(std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf) },  { fn: Some(std::panicking::try::do_call::he44bd66b51853864) },  { fn: Some("__rust_maybe_catch_panic") },  { fn: Some(std::panicking::try::h9e6571690ab8a505) },  { fn: Some(core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf) },  { fn: Some(std::sys_common::thread::start_thread::h44e11c2292c6e0da) },  { fn: Some(std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02) },  { fn: Some("start_thread") },  { fn: Some("__clone") },  { fn: None }]
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

resolved: Backtrace [ { fn: Some(std::backtrace::Backtrace::create::ha19bbd9f10287f80) },  { fn: Some(std::backtrace::Backtrace::force_capture::h5e8065a48ff91123) },  { fn: Some(std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892) },  { fn: Some("__rust_maybe_catch_panic") },  { fn: Some(std::panicking::try::hc8e0ebad5360bb9e) },  { fn: Some(test::run_test_in_process::h23ee0e24f420835e) },  { fn: Some(std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf) },  { fn: Some(std::panicking::try::do_call::he44bd66b51853864) },  { fn: Some("__rust_maybe_catch_panic") },  { fn: Some(std::panicking::try::h9e6571690ab8a505) },  { fn: Some(core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2) },  { fn: Some(<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf) },  { fn: Some(std::sys_common::thread::start_thread::h44e11c2292c6e0da) },  { fn: Some(std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02) },  { fn: Some("start_thread") },  { fn: Some("__clone") },  { fn: None }]

Fixing the Some around fn right now.

@yaahc
Copy link
Member Author

yaahc commented Feb 10, 2020

Current version, this adds some unknown frames that get skipped by the default logic, do we want to include said filtering logic as well?

uncaptured: disabled backtrace
captured: Backtrace [ { fn: "std::backtrace::Backtrace::create::ha19bbd9f10287f80" },  { fn: "std::backtrace::Backtrace::force_capture::h5e8065a48ff91123" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892" },  { fn: "__rust_maybe_catch_panic" },  { fn: "std::panicking::try::hc8e0ebad5360bb9e" },  { fn: "test::run_test_in_process::h23ee0e24f420835e" },  { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf" },  { fn: "std::panicking::try::do_call::he44bd66b51853864" },  { fn: "__rust_maybe_catch_panic" },  { fn: "std::panicking::try::h9e6571690ab8a505" },  { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf" },  { fn: "std::sys_common::thread::start_thread::h44e11c2292c6e0da" },  { fn: "std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02" },  { fn: "start_thread" },  { fn: "__clone" },  { fn: "<unknown>" }]
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

resolved: Backtrace [ { fn: "std::backtrace::Backtrace::create::ha19bbd9f10287f80" },  { fn: "std::backtrace::Backtrace::force_capture::h5e8065a48ff91123" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892" },  { fn: "__rust_maybe_catch_panic" },  { fn: "std::panicking::try::hc8e0ebad5360bb9e" },  { fn: "test::run_test_in_process::h23ee0e24f420835e" },  { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf" },  { fn: "std::panicking::try::do_call::he44bd66b51853864" },  { fn: "__rust_maybe_catch_panic" },  { fn: "std::panicking::try::h9e6571690ab8a505" },  { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf" },  { fn: "std::sys_common::thread::start_thread::h44e11c2292c6e0da" },  { fn: "std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02" },  { fn: "start_thread" },  { fn: "__clone" },  { fn: "<unknown>" }]

src/libstd/backtrace.rs Outdated Show resolved Hide resolved
src/libstd/backtrace.rs Outdated Show resolved Hide resolved
src/libstd/backtrace.rs Outdated Show resolved Hide resolved
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-02-10T23:48:51.8492051Z ========================== Starting Command Output ===========================
2020-02-10T23:48:51.8494984Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/417dfd62-653a-4527-a4ee-443c8b0afbb2.sh
2020-02-10T23:48:51.8495026Z 
2020-02-10T23:48:51.8500240Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-10T23:48:51.8509413Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-10T23:48:51.8511345Z Task         : Get sources
2020-02-10T23:48:51.8511397Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-10T23:48:51.8511430Z Version      : 1.0.0
2020-02-10T23:48:51.8511464Z Author       : Microsoft
---
2020-02-10T23:48:52.9108329Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-10T23:48:52.9127073Z ##[command]git config gc.auto 0
2020-02-10T23:48:52.9129383Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-10T23:48:52.9135038Z ##[command]git config --get-all http.proxy
2020-02-10T23:48:52.9141518Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/69038/merge:refs/remotes/pull/69038/merge
---
2020-02-11T00:50:02.8990924Z .................................................................................................... 1700/9625
2020-02-11T00:50:08.2310806Z .................................................................................................... 1800/9625
2020-02-11T00:50:21.6133458Z .............................i...................................................................... 1900/9625
2020-02-11T00:50:29.3927065Z .................................................................................................... 2000/9625
2020-02-11T00:50:44.5634448Z ...................iiiii............................................................................ 2100/9625
2020-02-11T00:50:54.9954849Z .................................................................................................... 2300/9625
2020-02-11T00:50:57.6704352Z .................................................................................................... 2400/9625
2020-02-11T00:51:02.7746790Z .................................................................................................... 2500/9625
2020-02-11T00:51:24.8966987Z .................................................................................................... 2600/9625
---
2020-02-11T00:54:09.3531654Z ......................................................................i...............i............. 4900/9625
2020-02-11T00:54:17.5519514Z .................................................................................................... 5000/9625
2020-02-11T00:54:26.1257590Z .................................................................................................... 5100/9625
2020-02-11T00:54:31.1064342Z ............i....................................................................................... 5200/9625
2020-02-11T00:54:42.7562099Z ......................................................................................ii.ii........i 5300/9625
2020-02-11T00:54:51.1065455Z ........................i........................................................................... 5500/9625
2020-02-11T00:54:59.6613256Z .................................................................................................... 5600/9625
2020-02-11T00:55:08.4184073Z ..........................................................................i......................... 5700/9625
2020-02-11T00:55:16.3522925Z .................................................................................................... 5800/9625
2020-02-11T00:55:16.3522925Z .................................................................................................... 5800/9625
2020-02-11T00:55:24.0572843Z .................................................................................................... 5900/9625
2020-02-11T00:55:33.6166860Z ..................................................................ii...i..ii...........i............ 6000/9625
2020-02-11T00:55:56.1044635Z .................................................................................................... 6200/9625
2020-02-11T00:56:04.1885828Z .................................................................................................... 6300/9625
2020-02-11T00:56:04.1885828Z .................................................................................................... 6300/9625
2020-02-11T00:56:12.6853888Z ..............................................................................................i..ii. 6400/9625
2020-02-11T00:56:39.3559346Z .................................................................................................... 6600/9625
2020-02-11T00:56:50.0721973Z .................................................................................i.................. 6700/9625
2020-02-11T00:56:52.4072838Z .................................................................................................... 6800/9625
2020-02-11T00:56:54.8276718Z ........................................................................................i........... 6900/9625
---
2020-02-11T00:58:40.3730992Z .................................................................................................... 7600/9625
2020-02-11T00:58:44.8278281Z .................................................................................................... 7700/9625
2020-02-11T00:58:50.7144208Z .................................................................................................... 7800/9625
2020-02-11T00:58:59.4862106Z .................................................................................................... 7900/9625
2020-02-11T00:59:08.8693534Z ...................................................................iiiiiii.i........................ 8000/9625
2020-02-11T00:59:25.2352247Z .......i......i..................................................................................... 8200/9625
2020-02-11T00:59:30.9963361Z .................................................................................................... 8300/9625
2020-02-11T00:59:45.4167546Z .................................................................................................... 8400/9625
2020-02-11T00:59:55.4477199Z .................................................................................................... 8500/9625
---
2020-02-11T01:02:27.5543684Z  finished in 7.653
2020-02-11T01:02:27.5752988Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:02:27.7854296Z 
2020-02-11T01:02:27.7854647Z running 178 tests
2020-02-11T01:02:30.9494460Z iiii......i...........ii..iiii...i....i...........i............i..i..................i....i......... 100/178
2020-02-11T01:02:33.5114515Z ...i.i.i...iii..iiiiiiiiiiiiiiii.......................iii............ii......
2020-02-11T01:02:33.5116459Z 
2020-02-11T01:02:33.5119250Z  finished in 5.936
2020-02-11T01:02:33.5326449Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:02:33.7176048Z 
---
2020-02-11T01:02:35.8171611Z  finished in 2.284
2020-02-11T01:02:35.8406755Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:02:36.0145388Z 
2020-02-11T01:02:36.0146137Z running 9 tests
2020-02-11T01:02:36.0147023Z iiiiiiiii
2020-02-11T01:02:36.0148797Z 
2020-02-11T01:02:36.0149120Z  finished in 0.174
2020-02-11T01:02:36.0366402Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:02:36.2400017Z 
---
2020-02-11T01:02:57.4923112Z  finished in 21.455
2020-02-11T01:02:57.5178548Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:02:57.7336653Z 
2020-02-11T01:02:57.7337339Z running 116 tests
2020-02-11T01:03:11.7256230Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii..........i.....i..i.......ii.i.ii. 100/116
2020-02-11T01:03:13.6860888Z ....iiii.....ii.
2020-02-11T01:03:13.6861994Z 
2020-02-11T01:03:13.6866271Z  finished in 16.169
2020-02-11T01:03:13.6872003Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T01:03:13.6873254Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2020-02-11T01:17:32.9760218Z 
2020-02-11T01:17:32.9761619Z    Doc-tests core
2020-02-11T01:17:38.1837298Z 
2020-02-11T01:17:38.1837687Z running 2471 tests
2020-02-11T01:17:48.0256569Z ......iiiii......................................................................................... 100/2471
2020-02-11T01:17:57.6469667Z ..................................................................................ii................ 200/2471
2020-02-11T01:18:20.0964372Z .................i.................................................................................. 400/2471
2020-02-11T01:18:20.0964372Z .................i.................................................................................. 400/2471
2020-02-11T01:18:30.6779725Z ......................................................................i..i..................iiii.... 500/2471
2020-02-11T01:18:48.4805966Z .................................................................................................... 700/2471
2020-02-11T01:18:57.8216882Z .................................................................................................... 800/2471
2020-02-11T01:19:07.1382928Z .................................................................................................... 900/2471
2020-02-11T01:19:16.3098374Z .................................................................................................... 1000/2471
---
2020-02-11T01:22:55.5286584Z .................................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:871:13
2020-02-11T01:22:55.5286827Z .. 300/761
2020-02-11T01:22:55.6397193Z .................................................................................................... 400/761
2020-02-11T01:22:57.7257523Z .................................................................................................... 500/761
2020-02-11T01:22:57.7501238Z ..................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2741:22
2020-02-11T01:22:57.7521768Z ....thread 'thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2766:17
2020-02-11T01:22:57.7553486Z .<unnamed>' panicked at '.called `Result::unwrap()` on an `Err` value: RecvError..', thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2645:13
2020-02-11T01:22:57.7563337Z ............src/libstd/sync/mpsc/mod.rs:2778.:.21
2020-02-11T01:22:57.9996391Z ...............................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1997:22
2020-02-11T01:22:58.0049423Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2034:21
2020-02-11T01:22:58.0076151Z .......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
2020-02-11T01:22:58.0350817Z .................. 600/761
2020-02-11T01:23:00.0657751Z ....................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:633:13
2020-02-11T01:23:00.0669705Z ..thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:587:13
---
2020-02-11T01:23:02.7421175Z thread '<unnamed>' panicked at 'Box<Any>', src/libstd/thread/mod.rs:1727:37
2020-02-11T01:23:08.2530966Z ..............
2020-02-11T01:23:08.2531089Z failures:
2020-02-11T01:23:08.2531121Z 
2020-02-11T01:23:08.2531867Z ---- backtrace::tests::debug_backtrace_fmt stdout ----
2020-02-11T01:23:08.2531924Z uncaptured: disabled backtrace
2020-02-11T01:23:08.2532129Z captured: Backtrace [ { fn: "std::backtrace::Backtrace::create::hc0c9abf45a573850" },  { fn: "std::backtrace::Backtrace::force_capture::hc439a737dfaa04f1" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::h4c24c9a7f263a28f" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::{{closure}}::hc35c4f50b6b35d53" },  { fn: "core::ops::function::FnOnce::call_once::hf1be62ec30e8403f" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h46e5a10d3747a497" },  { fn: "__rust_maybe_catch_panic" },  { fn: "test::run_test::run_test_inner::{{closure}}::h06ed7df7a8568a36" },  { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::hca1d6956c2c841b0" },  { fn: "std::panicking::try::do_call::h3d11d5c5aa46f34c" },  { fn: "__rust_maybe_catch_panic" },  { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::h0c0304b1966be275" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hd81dad5a20042ecf" },  { fn: "std::sys::unix::thread::Thread::new::thread_start::h4b273b4a85f28390" },  { fn: "start_thread" },  { fn: "__clone" },  { fn: "<unknown>" }]
2020-02-11T01:23:08.2532304Z display print: stack backtrace:
2020-02-11T01:23:08.2532356Z    0: std::backtrace::tests::debug_backtrace_fmt
2020-02-11T01:23:08.2532429Z    1: std::backtrace::tests::debug_backtrace_fmt::{{closure}}
2020-02-11T01:23:08.2532481Z    2: core::ops::function::FnOnce::call_once
2020-02-11T01:23:08.2532534Z    3: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T01:23:08.2532869Z    5: test::run_test::run_test_inner::{{closure}}
2020-02-11T01:23:08.2532920Z    6: std::sys_common::backtrace::__rust_begin_short_backtrace
2020-02-11T01:23:08.2533082Z    7: std::panicking::try::do_call
2020-02-11T01:23:08.2533134Z    8: __rust_maybe_catch_panic
2020-02-11T01:23:08.2533134Z    8: __rust_maybe_catch_panic
2020-02-11T01:23:08.2533183Z    9: core::ops::function::FnOnce::call_once{{vtable.shim}}
2020-02-11T01:23:08.2533252Z   10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T01:23:08.2533306Z   11: std::sys::unix::thread::Thread::new::thread_start
2020-02-11T01:23:08.2533353Z   12: start_thread
2020-02-11T01:23:08.2533415Z   13: __clone
2020-02-11T01:23:08.2533445Z 
2020-02-11T01:23:08.2533627Z resolved: Backtrace [ { fn: "std::backtrace::Backtrace::create::hc0c9abf45a573850" },  { fn: "std::backtrace::Backtrace::force_capture::hc439a737dfaa04f1" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::h4c24c9a7f263a28f" },  { fn: "std::backtrace::tests::debug_backtrace_fmt::{{closure}}::hc35c4f50b6b35d53" },  { fn: "core::ops::function::FnOnce::call_once::hf1be62ec30e8403f" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h46e5a10d3747a497" },  { fn: "__rust_maybe_catch_panic" },  { fn: "test::run_test::run_test_inner::{{closure}}::h06ed7df7a8568a36" },  { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::hca1d6956c2c841b0" },  { fn: "std::panicking::try::do_call::h3d11d5c5aa46f34c" },  { fn: "__rust_maybe_catch_panic" },  { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::h0c0304b1966be275" },  { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hd81dad5a20042ecf" },  { fn: "std::sys::unix::thread::Thread::new::thread_start::h4b273b4a85f28390" },  { fn: "start_thread" },  { fn: "__clone" },  { fn: "<unknown>" }]
2020-02-11T01:23:08.2534089Z thread '<unnamed>' panicked at 'not implemented', src/libstd/backtrace.rs:418:9
2020-02-11T01:23:08.2534216Z 
2020-02-11T01:23:08.2534243Z 
2020-02-11T01:23:08.2534286Z failures:
2020-02-11T01:23:08.2534347Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T01:23:08.2534347Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T01:23:08.2534385Z 
2020-02-11T01:23:08.2534436Z test result: FAILED. 760 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2020-02-11T01:23:08.2534489Z 
2020-02-11T01:23:08.2540604Z error: test failed, to rerun pass '-p std --lib'
2020-02-11T01:23:08.2547649Z 
2020-02-11T01:23:08.2548406Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "std" "--" "--quiet"
2020-02-11T01:23:08.2548494Z expected success, got: exit code: 101
2020-02-11T01:23:08.2548544Z 
---
2020-02-11T01:23:08.2637046Z   local time: Tue Feb 11 01:23:08 UTC 2020
2020-02-11T01:23:10.0317026Z   network time: Tue, 11 Feb 2020 01:23:08 GMT
2020-02-11T01:23:10.0317721Z == end clock drift check ==
2020-02-11T01:23:10.0317763Z 
2020-02-11T01:23:10.0379607Z ##[error]Bash exited with code '1'.
2020-02-11T01:23:10.0423579Z ##[section]Finishing: Run build
2020-02-11T01:23:10.0447313Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T01:23:10.0449217Z Task         : Get sources
2020-02-11T01:23:10.0449269Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-11T01:23:10.0449517Z Version      : 1.0.0
2020-02-11T01:23:10.0449563Z Author       : Microsoft
2020-02-11T01:23:10.0449563Z Author       : Microsoft
2020-02-11T01:23:10.0449614Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-11T01:23:10.0449692Z ==============================================================================
2020-02-11T01:23:10.5146203Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-11T01:23:10.5172343Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T01:23:10.5294926Z Cleaning up task key
2020-02-11T01:23:10.5295906Z Start cleaning up orphan processes.
2020-02-11T01:23:10.5413480Z Terminate orphan process: pid (3789) (python)
2020-02-11T01:23:10.5460508Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

Okay here is the current version

captured: Backtrace [{ fn: "std::backtrace::Backtrace::create::ha19bbd9f10287f80" }, { fn: "std::backtrace::Backtrace::force_capture::h5e8065a48ff91123" }, { fn: "std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892" }, { fn: ""__rust_maybe_catch_panic"" }, { fn: "std::panicking::try::hc8e0ebad5360bb9e" }, { fn: "test::run_test_in_process::h23ee0e24f420835e" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf" }, { fn: "std::panicking::try::do_call::he44bd66b51853864" }, { fn: ""__rust_maybe_catch_panic"" }, { fn: "std::panicking::try::h9e6571690ab8a505" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf" }, { fn: "std::sys_common::thread::start_thread::h44e11c2292c6e0da" }, { fn: "std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02" }, { fn: ""start_thread"" }, { fn: ""__clone"" }]
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

resolved: Backtrace [{ fn: "std::backtrace::Backtrace::create::ha19bbd9f10287f80" }, { fn: "std::backtrace::Backtrace::force_capture::h5e8065a48ff91123" }, { fn: "std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892" }, { fn: ""__rust_maybe_catch_panic"" }, { fn: "std::panicking::try::hc8e0ebad5360bb9e" }, { fn: "test::run_test_in_process::h23ee0e24f420835e" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf" }, { fn: "std::panicking::try::do_call::he44bd66b51853864" }, { fn: ""__rust_maybe_catch_panic"" }, { fn: "std::panicking::try::h9e6571690ab8a505" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf" }, { fn: "std::sys_common::thread::start_thread::h44e11c2292c6e0da" }, { fn: "std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02" }, { fn: ""start_thread"" }, { fn: ""__clone"" }]
resolved alt: Backtrace [
    { fn: "std::backtrace::Backtrace::create::ha19bbd9f10287f80" },
    { fn: "std::backtrace::Backtrace::force_capture::h5e8065a48ff91123" },
    { fn: "std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892" },
    { fn: ""__rust_maybe_catch_panic"" },
    { fn: "std::panicking::try::hc8e0ebad5360bb9e" },
    { fn: "test::run_test_in_process::h23ee0e24f420835e" },
    { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf" },
    { fn: "std::panicking::try::do_call::he44bd66b51853864" },
    { fn: ""__rust_maybe_catch_panic"" },
    { fn: "std::panicking::try::h9e6571690ab8a505" },
    { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf" },
    { fn: "std::sys_common::thread::start_thread::h44e11c2292c6e0da" },
    { fn: "std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02" },
    { fn: ""start_thread"" },
    { fn: ""__clone"" },
]

I manually added "" around the symbols, but it looks like some symbols are already strings, so I think I'm going to remove that for consistency with the previous impl.

src/libstd/backtrace.rs Outdated Show resolved Hide resolved
@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

and here we go again, for possibly the last time she says with great hubris

uncaptured: disabled backtrace
captured: Backtrace [{ fn: std::backtrace::Backtrace::create::ha19bbd9f10287f80 }, { fn: std::backtrace::Backtrace::force_capture::h5e8065a48ff91123 }, { fn: std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892 }, { fn: __rust_maybe_catch_panic }, { fn: std::panicking::try::hc8e0ebad5360bb9e }, { fn: test::run_test_in_process::h23ee0e24f420835e }, { fn: std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf }, { fn: std::panicking::try::do_call::he44bd66b51853864 }, { fn: __rust_maybe_catch_panic }, { fn: std::panicking::try::h9e6571690ab8a505 }, { fn: core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf }, { fn: std::sys_common::thread::start_thread::h44e11c2292c6e0da }, { fn: std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02 }, { fn: start_thread }, { fn: __clone }]
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

resolved: Backtrace [{ fn: std::backtrace::Backtrace::create::ha19bbd9f10287f80 }, { fn: std::backtrace::Backtrace::force_capture::h5e8065a48ff91123 }, { fn: std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892 }, { fn: __rust_maybe_catch_panic }, { fn: std::panicking::try::hc8e0ebad5360bb9e }, { fn: test::run_test_in_process::h23ee0e24f420835e }, { fn: std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf }, { fn: std::panicking::try::do_call::he44bd66b51853864 }, { fn: __rust_maybe_catch_panic }, { fn: std::panicking::try::h9e6571690ab8a505 }, { fn: core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf }, { fn: std::sys_common::thread::start_thread::h44e11c2292c6e0da }, { fn: std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02 }, { fn: start_thread }, { fn: __clone }]
resolved alt: Backtrace [
    { fn: std::backtrace::Backtrace::create },
    { fn: std::backtrace::Backtrace::force_capture },
    { fn: std::backtrace::tests::debug_backtrace_fmt },
    { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once },
    { fn: __rust_maybe_catch_panic },
    { fn: std::panicking::try },
    { fn: test::run_test_in_process },
    { fn: std::sys_common::backtrace::__rust_begin_short_backtrace },
    { fn: std::panicking::try::do_call },
    { fn: __rust_maybe_catch_panic },
    { fn: std::panicking::try },
    { fn: core::ops::function::FnOnce::call_once{{vtable.shim}} },
    { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once },
    { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once },
    { fn: std::sys_common::thread::start_thread },
    { fn: std::sys::unix::thread::Thread::new::thread_start },
    { fn: start_thread },
    { fn: __clone },
]

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

Sigh...

Why are these lines

    { fn: std::backtrace::Backtrace::create },
    { fn: std::backtrace::Backtrace::force_capture },

being skipped in the display impl ._. investigates

Edit:

its because of actual_start, the display impl defaults to short, which skips the first few frames. I opted to always do the Full version of what the display impl does, I think its safe to leave it in, but lmk what you think @dtolnay

@dtolnay
Copy link
Member

dtolnay commented Feb 11, 2020

Nice! Almost there I think. Thanks for sticking with this.

  • On the skipped frames due to actual_start, I would say let's skip them in the Debug impl as well. The reason they are skipped by default in Display is they are totally useless unless you are debugging something extremely niche, such as the backtrace-capturing code itself. Let's go for the side of eliminating noise since its already been made easy.

  • One thing I notice in your most recent paste is that the one-line representation starts with std::backtrace::Backtrace::create::ha19bbd9f10287f80 while the multi line representation starts with std::backtrace::Backtrace::create without a hash. This looks like an unintended side effect of forwarding through the Formatter flags. Could you take a look? Ideally we wouldn't have the hash in either case, matching the Display impl.

  • I am fine with having the symbol name unquoted, but I noticed that this entry in particular is harder to read:

    { fn: core::ops::function::FnOnce::call_once{{vtable.shim}} }

    Did you notice that one? Does it affect whether you think putting the symbol in quotes would be neater? Now that you've figured out how to print no quotes at all, it seems like it would be easy to put a quote before and after if you wanted.

    { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" }

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-02-11T01:47:27.8626224Z ========================== Starting Command Output ===========================
2020-02-11T01:47:27.8628303Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/5d083af4-c170-4734-ab97-b3ff37cc4cf6.sh
2020-02-11T01:47:27.8628398Z 
2020-02-11T01:47:27.8631863Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-11T01:47:27.8639261Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T01:47:27.8641240Z Task         : Get sources
2020-02-11T01:47:27.8641289Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-11T01:47:27.8641391Z Version      : 1.0.0
2020-02-11T01:47:27.8641440Z Author       : Microsoft
---
2020-02-11T01:47:28.7357467Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-11T01:47:28.7460478Z ##[command]git config gc.auto 0
2020-02-11T01:47:28.7519256Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-11T01:47:28.7572386Z ##[command]git config --get-all http.proxy
2020-02-11T01:47:28.7717971Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/69038/merge:refs/remotes/pull/69038/merge
---
2020-02-11T02:41:49.8584858Z .................................................................................................... 1700/9625
2020-02-11T02:41:54.4752166Z .................................................................................................... 1800/9625
2020-02-11T02:42:06.1287852Z .............................i...................................................................... 1900/9625
2020-02-11T02:42:13.0208603Z .................................................................................................... 2000/9625
2020-02-11T02:42:26.6059757Z ...................iiiii............................................................................ 2100/9625
2020-02-11T02:42:35.9417151Z .................................................................................................... 2300/9625
2020-02-11T02:42:38.2549629Z .................................................................................................... 2400/9625
2020-02-11T02:42:42.8879435Z .................................................................................................... 2500/9625
2020-02-11T02:43:02.6987570Z .................................................................................................... 2600/9625
---
2020-02-11T02:45:32.7715316Z ......................................................................i...............i............. 4900/9625
2020-02-11T02:45:40.3214876Z .................................................................................................... 5000/9625
2020-02-11T02:45:47.9733497Z .................................................................................................... 5100/9625
2020-02-11T02:45:52.4895429Z ............i....................................................................................... 5200/9625
2020-02-11T02:46:02.9822466Z ......................................................................................ii.ii........i 5300/9625
2020-02-11T02:46:10.5732347Z ........................i........................................................................... 5500/9625
2020-02-11T02:46:18.4010402Z .................................................................................................... 5600/9625
2020-02-11T02:46:26.3138018Z ..........................................................................i......................... 5700/9625
2020-02-11T02:46:33.4665059Z .................................................................................................... 5800/9625
2020-02-11T02:46:33.4665059Z .................................................................................................... 5800/9625
2020-02-11T02:46:39.6281997Z .................................................................................................... 5900/9625
2020-02-11T02:46:49.6106702Z ..................................................................ii...i..ii...........i............ 6000/9625
2020-02-11T02:47:09.9598649Z .................................................................................................... 6200/9625
2020-02-11T02:47:14.5688825Z .................................................................................................... 6300/9625
2020-02-11T02:47:14.5688825Z .................................................................................................... 6300/9625
2020-02-11T02:47:18.5480557Z ..............................................................................................i..ii. 6400/9625
2020-02-11T02:47:40.0152685Z .................................................................................................... 6600/9625
2020-02-11T02:47:49.5962252Z .................................................................................i.................. 6700/9625
2020-02-11T02:47:51.6551443Z .................................................................................................... 6800/9625
2020-02-11T02:47:53.8193228Z ........................................................................................i........... 6900/9625
---
2020-02-11T02:49:28.9011128Z .................................................................................................... 7600/9625
2020-02-11T02:49:33.1199700Z .................................................................................................... 7700/9625
2020-02-11T02:49:38.6562327Z .................................................................................................... 7800/9625
2020-02-11T02:49:46.8247164Z .................................................................................................... 7900/9625
2020-02-11T02:49:55.7827864Z ...................................................................iiiiiii.i........................ 8000/9625
2020-02-11T02:50:11.0183708Z .......i......i..................................................................................... 8200/9625
2020-02-11T02:50:16.4036921Z .................................................................................................... 8300/9625
2020-02-11T02:50:29.6543549Z .................................................................................................... 8400/9625
2020-02-11T02:50:38.9062476Z .................................................................................................... 8500/9625
---
2020-02-11T02:52:57.1405865Z  finished in 7.173
2020-02-11T02:52:57.1597707Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:52:57.3672262Z 
2020-02-11T02:52:57.3673084Z running 178 tests
2020-02-11T02:53:00.8333305Z iiii......i...........ii..iiii...i....i...........i............i..i..................i....i......... 100/178
2020-02-11T02:53:02.5611113Z ...i.i.i...iii..iiiiiiiiiiiiiiii.......................iii............ii......
2020-02-11T02:53:02.5611707Z 
2020-02-11T02:53:02.5612275Z  finished in 5.401
2020-02-11T02:53:02.5800326Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:53:02.7533306Z 
---
2020-02-11T02:53:04.7218865Z  finished in 2.141
2020-02-11T02:53:04.7417584Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:53:04.9050162Z 
2020-02-11T02:53:04.9050403Z running 9 tests
2020-02-11T02:53:04.9051226Z iiiiiiiii
2020-02-11T02:53:04.9051675Z 
2020-02-11T02:53:04.9054760Z  finished in 0.163
2020-02-11T02:53:04.9272731Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:53:05.1208304Z 
---
2020-02-11T02:53:24.7817601Z  finished in 19.855
2020-02-11T02:53:24.8044526Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:53:25.0069952Z 
2020-02-11T02:53:25.0070134Z running 116 tests
2020-02-11T02:53:37.8007809Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii..........i.....i..i.......ii.i.ii. 100/116
2020-02-11T02:53:40.3410150Z ....iiii.....ii.
2020-02-11T02:53:40.3410611Z 
2020-02-11T02:53:40.3410664Z  finished in 14.772
2020-02-11T02:53:40.3410947Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T02:53:40.3411284Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2020-02-11T03:05:58.1721788Z 
2020-02-11T03:05:58.1722608Z    Doc-tests core
2020-02-11T03:06:02.6451922Z 
2020-02-11T03:06:02.6452671Z running 2471 tests
2020-02-11T03:06:11.1973996Z ......iiiii......................................................................................... 100/2471
2020-02-11T03:06:19.5280245Z ..................................................................................ii................ 200/2471
2020-02-11T03:06:38.8220304Z .................i.................................................................................. 400/2471
2020-02-11T03:06:38.8220304Z .................i.................................................................................. 400/2471
2020-02-11T03:06:47.8501858Z ......................................................................i..i..................iiii.... 500/2471
2020-02-11T03:07:03.1207388Z .................................................................................................... 700/2471
2020-02-11T03:07:11.0746267Z .................................................................................................... 800/2471
2020-02-11T03:07:19.0356112Z .................................................................................................... 900/2471
2020-02-11T03:07:27.0157317Z .................................................................................................... 1000/2471
---
2020-02-11T03:10:38.4902251Z .................................................................................................... 500/761
2020-02-11T03:10:38.5292011Z ..................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2741:22
2020-02-11T03:10:38.5305745Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2778:21
2020-02-11T03:10:38.5308922Z thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2766:17
2020-02-11T03:10:38.5323754Z .......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2645:13
2020-02-11T03:10:38.8265023Z ..........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1997:22
2020-02-11T03:10:38.8283695Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2022:17
2020-02-11T03:10:38.8298776Z .thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2034.:21.
2020-02-11T03:10:38.8310410Z .....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
2020-02-11T03:10:40.8729366Z ....................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:633:13
2020-02-11T03:10:40.8746805Z ..thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:587:13
2020-02-11T03:10:40.8758387Z ...thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:563:13
2020-02-11T03:10:40.8764794Z .thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:694:13
---
2020-02-11T03:10:43.5621239Z .thread '<unnamed>' panicked at 'Box<Any>', src/libstd/thread/mod.rs:1727:37
2020-02-11T03:10:49.0539432Z .............
2020-02-11T03:10:49.0539586Z failures:
2020-02-11T03:10:49.0539641Z 
2020-02-11T03:10:49.0540647Z ---- backtrace::tests::debug_backtrace_fmt stdout ----
2020-02-11T03:10:49.0540766Z uncaptured: disabled backtrace
2020-02-11T03:10:49.0541075Z captured: Backtrace [{ fn: std::backtrace::Backtrace::create::hdeef3b580b4db842 }, { fn: std::backtrace::Backtrace::force_capture::haa57f8e507856668 }, { fn: std::backtrace::tests::debug_backtrace_fmt::ha299b18b904f6ae1 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h5df0e898b301d82a }, { fn: __rust_maybe_catch_panic }, { fn: test::run_test::run_test_inner::{{closure}}::hfbb6c9beffe5df6d }, { fn: std::sys_common::backtrace::__rust_begin_short_backtrace::h3aede521c9ff7629 }, { fn: std::panicking::try::do_call::h02bc59bce1d83dd1 }, { fn: __rust_maybe_catch_panic }, { fn: core::ops::function::FnOnce::call_once{{vtable.shim}}::h0806fc5f2dbe969f }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h508ce35e9da003b7 }, { fn: std::sys::unix::thread::Thread::new::thread_start::h7d4e50e6e9ddd29f }, { fn: start_thread }, { fn: __clone }]
2020-02-11T03:10:49.0541335Z display print: stack backtrace:
2020-02-11T03:10:49.0541432Z    0: std::backtrace::tests::debug_backtrace_fmt
2020-02-11T03:10:49.0541560Z    1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T03:10:49.0542012Z    3: test::run_test::run_test_inner::{{closure}}
2020-02-11T03:10:49.0542120Z    4: std::sys_common::backtrace::__rust_begin_short_backtrace
2020-02-11T03:10:49.0542212Z    5: std::panicking::try::do_call
2020-02-11T03:10:49.0542299Z    6: __rust_maybe_catch_panic
2020-02-11T03:10:49.0542299Z    6: __rust_maybe_catch_panic
2020-02-11T03:10:49.0542407Z    7: core::ops::function::FnOnce::call_once{{vtable.shim}}
2020-02-11T03:10:49.0542506Z    8: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T03:10:49.0542604Z    9: std::sys::unix::thread::Thread::new::thread_start
2020-02-11T03:10:49.0542849Z   10: start_thread
2020-02-11T03:10:49.0542931Z   11: __clone
2020-02-11T03:10:49.0542987Z 
2020-02-11T03:10:49.0543282Z resolved: Backtrace [{ fn: std::backtrace::Backtrace::create::hdeef3b580b4db842 }, { fn: std::backtrace::Backtrace::force_capture::haa57f8e507856668 }, { fn: std::backtrace::tests::debug_backtrace_fmt::ha299b18b904f6ae1 }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h5df0e898b301d82a }, { fn: __rust_maybe_catch_panic }, { fn: test::run_test::run_test_inner::{{closure}}::hfbb6c9beffe5df6d }, { fn: std::sys_common::backtrace::__rust_begin_short_backtrace::h3aede521c9ff7629 }, { fn: std::panicking::try::do_call::h02bc59bce1d83dd1 }, { fn: __rust_maybe_catch_panic }, { fn: core::ops::function::FnOnce::call_once{{vtable.shim}}::h0806fc5f2dbe969f }, { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h508ce35e9da003b7 }, { fn: std::sys::unix::thread::Thread::new::thread_start::h7d4e50e6e9ddd29f }, { fn: start_thread }, { fn: __clone }]
2020-02-11T03:10:49.0543524Z resolved alt: Backtrace [
2020-02-11T03:10:49.0543616Z     { fn: std::backtrace::Backtrace::create },
2020-02-11T03:10:49.0543712Z     { fn: std::backtrace::Backtrace::force_capture },
2020-02-11T03:10:49.0543825Z     { fn: std::backtrace::tests::debug_backtrace_fmt },
2020-02-11T03:10:49.0543924Z     { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once },
2020-02-11T03:10:49.0544031Z     { fn: __rust_maybe_catch_panic },
2020-02-11T03:10:49.0544146Z     { fn: test::run_test::run_test_inner::{{closure}} },
2020-02-11T03:10:49.0544241Z     { fn: std::sys_common::backtrace::__rust_begin_short_backtrace },
2020-02-11T03:10:49.0544335Z     { fn: std::panicking::try::do_call },
2020-02-11T03:10:49.0544440Z     { fn: __rust_maybe_catch_panic },
2020-02-11T03:10:49.0544533Z     { fn: core::ops::function::FnOnce::call_once{{vtable.shim}} },
2020-02-11T03:10:49.0544638Z     { fn: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once },
2020-02-11T03:10:49.0544770Z     { fn: std::sys::unix::thread::Thread::new::thread_start },
2020-02-11T03:10:49.0544858Z     { fn: start_thread },
2020-02-11T03:10:49.0544940Z     { fn: __clone },
2020-02-11T03:10:49.0545037Z ]
2020-02-11T03:10:49.0545577Z thread '<unnamed>' panicked at 'not implemented', src/libstd/backtrace.rs:424:9
2020-02-11T03:10:49.0545760Z 
2020-02-11T03:10:49.0545830Z 
2020-02-11T03:10:49.0545909Z failures:
2020-02-11T03:10:49.0545994Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T03:10:49.0545994Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T03:10:49.0546048Z 
2020-02-11T03:10:49.0546156Z test result: FAILED. 760 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2020-02-11T03:10:49.0546218Z 
2020-02-11T03:10:49.0571796Z error: test failed, to rerun pass '-p std --lib'
2020-02-11T03:10:49.0596308Z 
2020-02-11T03:10:49.0598160Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "std" "--" "--quiet"
2020-02-11T03:10:49.0598878Z expected success, got: exit code: 101
2020-02-11T03:10:49.0599162Z 
---
2020-02-11T03:10:49.0682926Z   local time: Tue Feb 11 03:10:49 UTC 2020
2020-02-11T03:10:49.2321271Z   network time: Tue, 11 Feb 2020 03:10:49 GMT
2020-02-11T03:10:49.2327735Z == end clock drift check ==
2020-02-11T03:10:49.6690983Z 
2020-02-11T03:10:49.6790038Z ##[error]Bash exited with code '1'.
2020-02-11T03:10:49.6801572Z ##[section]Finishing: Run build
2020-02-11T03:10:49.6822149Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T03:10:49.6823947Z Task         : Get sources
2020-02-11T03:10:49.6824000Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-11T03:10:49.6824051Z Version      : 1.0.0
2020-02-11T03:10:49.6824113Z Author       : Microsoft
2020-02-11T03:10:49.6824113Z Author       : Microsoft
2020-02-11T03:10:49.6824165Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-11T03:10:49.6824220Z ==============================================================================
2020-02-11T03:10:50.0998885Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-11T03:10:50.1040927Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T03:10:50.1149269Z Cleaning up task key
2020-02-11T03:10:50.1150081Z Start cleaning up orphan processes.
2020-02-11T03:10:50.1249897Z Terminate orphan process: pid (3795) (python)
2020-02-11T03:10:50.1474720Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

  • Re: hash

I believe the display impl prints the hashes for {:#} as well, so it is consistent right now in that it behaves under alt the same way. This relates back too the actual_start as well, under alt the old version doesn't skip the actual start stuff. I lean towards wanting to start as minimal as possible, never show anything before actual start, never render the hash, and if people need them later we can add them later, or, ideally, we would be able to get an iterator API for frames added to Backtrace that would provide them with whatever they need out of the hashes / extra frames that they can't otherwise get from the Display impl.

Here's the comparison between the alt and default display impls

display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

display print alt: stack backtrace:
   0:     0x561d29648ead - std::backtrace::Backtrace::create::ha19bbd9f10287f80
   1:     0x561d29648e20 - std::backtrace::Backtrace::force_capture::h5e8065a48ff91123
   2:     0x561d297286e4 - std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b
   3:     0x7fef1438528f - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892
   4:     0x7fef140e1834 - __rust_maybe_catch_panic
   5:     0x7fef1438747c - std::panicking::try::hc8e0ebad5360bb9e
   6:     0x7fef143902ef - test::run_test_in_process::h23ee0e24f420835e
   7:     0x7fef1438d3e8 - std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf
   8:     0x7fef143875a6 - std::panicking::try::do_call::he44bd66b51853864
   9:     0x7fef140e1834 - __rust_maybe_catch_panic
  10:     0x7fef1438733a - std::panicking::try::h9e6571690ab8a505
  11:     0x7fef14387aa3 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9
  12:     0x7fef140b36af - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2
  13:     0x7fef140b3703 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf
  14:     0x7fef140d6baa - std::sys_common::thread::start_thread::h44e11c2292c6e0da
  15:     0x7fef140dc796 - std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02
  16:     0x7fef145f16db - start_thread
  17:     0x7fef13b7388f - __clone
  18:                0x0 - <unknown>
  • Re: quotes

They feel equally easy to read to me, so I have no preference, if you want my vote I'm gonna vote for no " because technically these aren't strings, and the code for the impl is just a little shorter / cleaner. But these are completely unimportant considerations, so I will defer to your preference.

Edit: One thing I think might be important is how easily the debug impl can be parsed, so if you think that adding " around the symbol names would make it noticeably easier to parse and then rerender in a custom format then I'm in favor of "'s.

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

Oh I just noticed the resolved / non-opt debug print for Backtrace had hashes, thats definitely wrong, fixing.

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

And now its backwards, because apparently they switched the meanings of alt where they use the alt print for PrintFmt::Short which is selected when alt is false 🙃

Gonna just make an executive decision here and not try to maintain exact compat with old behavior.

@yaahc
Copy link
Member Author

yaahc commented Feb 11, 2020

Final-final-v2-format.jpg

uncaptured: disabled backtrace
captured: Backtrace [{ fn: "std::backtrace::tests::debug_backtrace_fmt" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "__rust_maybe_catch_panic" }, { fn: "std::panicking::try" }, { fn: "test::run_test_in_process" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" }, { fn: "std::panicking::try::do_call" }, { fn: "__rust_maybe_catch_panic" }, { fn: "std::panicking::try" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "std::sys_common::thread::start_thread" }, { fn: "std::sys::unix::thread::Thread::new::thread_start" }, { fn: "start_thread" }, { fn: "__clone" }]
display print: stack backtrace:
   0: std::backtrace::tests::debug_backtrace_fmt
   1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
   2: __rust_maybe_catch_panic
   3: std::panicking::try
   4: test::run_test_in_process
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::panicking::try::do_call
   7: __rust_maybe_catch_panic
   8: std::panicking::try
   9: core::ops::function::FnOnce::call_once{{vtable.shim}}
  10: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  11: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  12: std::sys_common::thread::start_thread
  13: std::sys::unix::thread::Thread::new::thread_start
  14: start_thread
  15: __clone

display print alt: stack backtrace:
   0:     0x55ed655a1ebd - std::backtrace::Backtrace::create::ha19bbd9f10287f80
   1:     0x55ed655a1e30 - std::backtrace::Backtrace::force_capture::h5e8065a48ff91123
   2:     0x55ed656816f4 - std::backtrace::tests::debug_backtrace_fmt::h0557493242cdd27b
   3:     0x7f729e67028f - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h94c20d903b9ee892
   4:     0x7f729e3cc844 - __rust_maybe_catch_panic
   5:     0x7f729e67247c - std::panicking::try::hc8e0ebad5360bb9e
   6:     0x7f729e67b2ef - test::run_test_in_process::h23ee0e24f420835e
   7:     0x7f729e6783e8 - std::sys_common::backtrace::__rust_begin_short_backtrace::h66d96ab05a49a4cf
   8:     0x7f729e6725a6 - std::panicking::try::do_call::he44bd66b51853864
   9:     0x7f729e3cc844 - __rust_maybe_catch_panic
  10:     0x7f729e67233a - std::panicking::try::h9e6571690ab8a505
  11:     0x7f729e672aa3 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb78017e7280200c9
  12:     0x7f729e39e6bf - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6caad6f61b1e39b2
  13:     0x7f729e39e713 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hc9d5f44518fec1bf
  14:     0x7f729e3c1baa - std::sys_common::thread::start_thread::h44e11c2292c6e0da
  15:     0x7f729e3c7796 - std::sys::unix::thread::Thread::new::thread_start::h1534b513264a5d02
  16:     0x7f729e8dc6db - start_thread
  17:     0x7f729de5e88f - __clone
  18:                0x0 - <unknown>

resolved: Backtrace [{ fn: "std::backtrace::tests::debug_backtrace_fmt" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "__rust_maybe_catch_panic" }, { fn: "std::panicking::try" }, { fn: "test::run_test_in_process" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" }, { fn: "std::panicking::try::do_call" }, { fn: "__rust_maybe_catch_panic" }, { fn: "std::panicking::try" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "std::sys_common::thread::start_thread" }, { fn: "std::sys::unix::thread::Thread::new::thread_start" }, { fn: "start_thread" }, { fn: "__clone" }]
resolved alt: Backtrace [
    { fn: "std::backtrace::tests::debug_backtrace_fmt" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" },
    { fn: "__rust_maybe_catch_panic" },
    { fn: "std::panicking::try" },
    { fn: "test::run_test_in_process" },
    { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" },
    { fn: "std::panicking::try::do_call" },
    { fn: "__rust_maybe_catch_panic" },
    { fn: "std::panicking::try" },
    { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" },
    { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" },
    { fn: "std::sys_common::thread::start_thread" },
    { fn: "std::sys::unix::thread::Thread::new::thread_start" },
    { fn: "start_thread" },
    { fn: "__clone" },
]

Copy link
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great. Looks good to me without the deliberately failing test. I don't know if there is a way to instantiate a hardcoded backtrace for testing purposes, but I wouldn't worry about it if it turns out to be not easy.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-02-11T05:55:13.3249558Z ========================== Starting Command Output ===========================
2020-02-11T05:55:13.3253085Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/96919f58-5db0-4fea-838a-68740c70b6f4.sh
2020-02-11T05:55:13.3253260Z 
2020-02-11T05:55:13.3257265Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-11T05:55:13.3265794Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T05:55:13.3267815Z Task         : Get sources
2020-02-11T05:55:13.3267867Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-11T05:55:13.3267976Z Version      : 1.0.0
2020-02-11T05:55:13.3268026Z Author       : Microsoft
---
2020-02-11T05:55:17.3029856Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-11T05:55:17.3258529Z ##[command]git config gc.auto 0
2020-02-11T05:55:17.3330899Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-11T05:55:17.3388811Z ##[command]git config --get-all http.proxy
2020-02-11T05:55:17.3540301Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/69038/merge:refs/remotes/pull/69038/merge
---
2020-02-11T06:52:58.0411246Z .................................................................................................... 1700/9627
2020-02-11T06:53:03.0853920Z .................................................................................................... 1800/9627
2020-02-11T06:53:15.1972515Z ..............................i..................................................................... 1900/9627
2020-02-11T06:53:22.8226645Z .................................................................................................... 2000/9627
2020-02-11T06:53:36.9238794Z ....................iiiii........................................................................... 2100/9627
2020-02-11T06:53:46.9627118Z .................................................................................................... 2300/9627
2020-02-11T06:53:49.4799703Z .................................................................................................... 2400/9627
2020-02-11T06:53:54.3827739Z .................................................................................................... 2500/9627
2020-02-11T06:54:15.2727399Z .................................................................................................... 2600/9627
---
2020-02-11T06:56:52.3913431Z .......................................................................i...............i............ 4900/9627
2020-02-11T06:57:00.3619317Z .................................................................................................... 5000/9627
2020-02-11T06:57:08.3286637Z .................................................................................................... 5100/9627
2020-02-11T06:57:13.0986735Z .............i...................................................................................... 5200/9627
2020-02-11T06:57:24.2617408Z .......................................................................................ii.ii........ 5300/9627
2020-02-11T06:57:28.1223700Z i...i............................................................................................... 5400/9627
2020-02-11T06:57:40.3140210Z .................................................................................................... 5600/9627
2020-02-11T06:57:48.7055736Z ...........................................................................i........................ 5700/9627
2020-02-11T06:57:56.2455576Z .................................................................................................... 5800/9627
2020-02-11T06:58:02.6855609Z .................................................................................................... 5900/9627
2020-02-11T06:58:02.6855609Z .................................................................................................... 5900/9627
2020-02-11T06:58:12.8497605Z ...................................................................ii...i..ii...........i........... 6000/9627
2020-02-11T06:58:34.5472427Z .................................................................................................... 6200/9627
2020-02-11T06:58:40.7603534Z .................................................................................................... 6300/9627
2020-02-11T06:58:44.9003334Z ...............................................................................................i..ii 6400/9627
2020-02-11T06:58:58.1058778Z .................................................................................................... 6500/9627
---
2020-02-11T07:01:04.4009413Z .................................................................................................... 7600/9627
2020-02-11T07:01:08.9304356Z .................................................................................................... 7700/9627
2020-02-11T07:01:14.8001259Z .................................................................................................... 7800/9627
2020-02-11T07:01:23.2245154Z .................................................................................................... 7900/9627
2020-02-11T07:01:32.3393610Z .....................................................................iiiiiii.i...................... 8000/9627
2020-02-11T07:01:48.4429376Z .........i......i................................................................................... 8200/9627
2020-02-11T07:01:54.0032513Z .................................................................................................... 8300/9627
2020-02-11T07:02:07.7930097Z .................................................................................................... 8400/9627
2020-02-11T07:02:17.7559210Z .................................................................................................... 8500/9627
---
2020-02-11T07:04:45.0441677Z  finished in 7.540
2020-02-11T07:04:45.0653942Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:04:45.2689233Z 
2020-02-11T07:04:45.2690673Z running 178 tests
2020-02-11T07:04:48.4193459Z iiii......i...........ii..iiii...i....i...........i............i..i..................i....i......... 100/178
2020-02-11T07:04:50.7810855Z ...i.i.i...iii..iiiiiiiiiiiiiiii.......................iii............ii......
2020-02-11T07:04:50.7815510Z 
2020-02-11T07:04:50.7821706Z  finished in 5.717
2020-02-11T07:04:50.8037470Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:04:50.9793120Z 
---
2020-02-11T07:04:53.0700010Z  finished in 2.266
2020-02-11T07:04:53.0906164Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:04:53.2498191Z 
2020-02-11T07:04:53.2499521Z running 9 tests
2020-02-11T07:04:53.2500357Z iiiiiiiii
2020-02-11T07:04:53.2500956Z 
2020-02-11T07:04:53.2504868Z  finished in 0.159
2020-02-11T07:04:53.2713726Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:04:53.4698941Z 
---
2020-02-11T07:05:15.2037580Z  finished in 21.932
2020-02-11T07:05:15.2283597Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:05:15.4308601Z 
2020-02-11T07:05:15.4312769Z running 116 tests
2020-02-11T07:05:28.6842595Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii..........i.....i..i.......ii.i.ii. 100/116
2020-02-11T07:05:30.5454037Z ....iiii.....ii.
2020-02-11T07:05:30.5454578Z 
2020-02-11T07:05:30.5454634Z  finished in 15.317
2020-02-11T07:05:30.5462132Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-11T07:05:30.5462748Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2020-02-11T07:18:31.4353757Z 
2020-02-11T07:18:31.4356506Z    Doc-tests core
2020-02-11T07:18:36.0320697Z 
2020-02-11T07:18:36.0321556Z running 2471 tests
2020-02-11T07:18:45.7496250Z ......iiiii......................................................................................... 100/2471
2020-02-11T07:18:54.4835926Z ..................................................................................ii................ 200/2471
2020-02-11T07:19:15.4987207Z .................i.................................................................................. 400/2471
2020-02-11T07:19:15.4987207Z .................i.................................................................................. 400/2471
2020-02-11T07:19:25.1676560Z ......................................................................i..i..................iiii.... 500/2471
2020-02-11T07:19:41.7570196Z .................................................................................................... 700/2471
2020-02-11T07:19:50.3840714Z .................................................................................................... 800/2471
2020-02-11T07:19:58.9389203Z .................................................................................................... 900/2471
2020-02-11T07:20:07.7482262Z .................................................................................................... 1000/2471
---
2020-02-11T07:23:36.6971979Z ..thread '<unnamed>' panicked at 'Box<Any>', src/libstd/thread/mod.rs:1727:37
2020-02-11T07:23:42.1861603Z ............
2020-02-11T07:23:42.1862372Z failures:
2020-02-11T07:23:42.1862554Z 
2020-02-11T07:23:42.1886031Z ---- backtrace::tests::debug_backtrace_fmt stdout ----
2020-02-11T07:23:42.1886292Z uncaptured: disabled backtrace
2020-02-11T07:23:42.1886685Z captured: Backtrace [{ fn: "std::backtrace::tests::debug_backtrace_fmt" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "__rust_maybe_catch_panic" }, { fn: "test::run_test::run_test_inner::{{closure}}" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" }, { fn: "std::panicking::try::do_call" }, { fn: "__rust_maybe_catch_panic" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "std::sys::unix::thread::Thread::new::thread_start" }, { fn: "start_thread" }, { fn: "__clone" }]
2020-02-11T07:23:42.1886939Z display print: stack backtrace:
2020-02-11T07:23:42.1887398Z    0: std::backtrace::tests::debug_backtrace_fmt
2020-02-11T07:23:42.1887583Z    1: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T07:23:42.1888619Z    3: test::run_test::run_test_inner::{{closure}}
2020-02-11T07:23:42.1888771Z    4: std::sys_common::backtrace::__rust_begin_short_backtrace
2020-02-11T07:23:42.1889081Z    5: std::panicking::try::do_call
2020-02-11T07:23:42.1889230Z    6: __rust_maybe_catch_panic
2020-02-11T07:23:42.1889230Z    6: __rust_maybe_catch_panic
2020-02-11T07:23:42.1889394Z    7: core::ops::function::FnOnce::call_once{{vtable.shim}}
2020-02-11T07:23:42.1889551Z    8: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
2020-02-11T07:23:42.1889702Z    9: std::sys::unix::thread::Thread::new::thread_start
2020-02-11T07:23:42.1889866Z   10: start_thread
2020-02-11T07:23:42.1890011Z   11: __clone
2020-02-11T07:23:42.1890301Z display print alt: stack backtrace:
2020-02-11T07:23:42.1890301Z display print alt: stack backtrace:
2020-02-11T07:23:42.1890870Z    0:     0x55ded47ff28d - std::backtrace::Backtrace::create::hf703babbcd3e85d1
2020-02-11T07:23:42.1891329Z    1:     0x55ded47ff200 - std::backtrace::Backtrace::force_capture::hb95f1d1c7097ba31
2020-02-11T07:23:42.1891777Z    2:     0x55ded484b064 - std::backtrace::tests::debug_backtrace_fmt::h568ed6c2496cee04
2020-02-11T07:23:42.1892230Z    3:     0x7f5137e398cf - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hb6b372f16c36fb60
2020-02-11T07:23:42.1892652Z    4:     0x7f5137b9b727 - __rust_maybe_catch_panic
2020-02-11T07:23:42.1893084Z    5:     0x7f5137e58a8f - test::run_test::run_test_inner::{{closure}}::h048df9d5557c3257
2020-02-11T07:23:42.1893524Z    6:     0x7f5137e2b649 - std::sys_common::backtrace::__rust_begin_short_backtrace::h99192f66d51e6047
2020-02-11T07:23:42.1893953Z    7:     0x7f5137e30319 - std::panicking::try::do_call::ha91683607659b9cc
2020-02-11T07:23:42.1894335Z    8:     0x7f5137b9b727 - __rust_maybe_catch_panic
2020-02-11T07:23:42.1894792Z    9:     0x7f5137e31c06 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hd0f6a17b7e19090f
2020-02-11T07:23:42.1895243Z   10:     0x7f5137b63adf - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::ha37d21f7f8ae446d
2020-02-11T07:23:42.1895676Z   11:     0x7f5137b995f0 - std::sys::unix::thread::Thread::new::thread_start::h75b8fb4f22922630
2020-02-11T07:23:42.1896079Z   12:     0x7f513809e6db - start_thread
2020-02-11T07:23:42.1896440Z   13:     0x7f513762d88f - __clone
2020-02-11T07:23:42.1896797Z   14:                0x0 - <unknown>
2020-02-11T07:23:42.1896956Z 
2020-02-11T07:23:42.1897192Z resolved: Backtrace [{ fn: "std::backtrace::tests::debug_backtrace_fmt" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "__rust_maybe_catch_panic" }, { fn: "test::run_test::run_test_inner::{{closure}}" }, { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" }, { fn: "std::panicking::try::do_call" }, { fn: "__rust_maybe_catch_panic" }, { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" }, { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" }, { fn: "std::sys::unix::thread::Thread::new::thread_start" }, { fn: "start_thread" }, { fn: "__clone" }]
2020-02-11T07:23:42.1897404Z resolved alt: Backtrace [
2020-02-11T07:23:42.1897556Z     { fn: "std::backtrace::tests::debug_backtrace_fmt" },
2020-02-11T07:23:42.1897740Z     { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" },
2020-02-11T07:23:42.1897898Z     { fn: "__rust_maybe_catch_panic" },
2020-02-11T07:23:42.1898065Z     { fn: "test::run_test::run_test_inner::{{closure}}" },
2020-02-11T07:23:42.1898220Z     { fn: "std::sys_common::backtrace::__rust_begin_short_backtrace" },
2020-02-11T07:23:42.1898372Z     { fn: "std::panicking::try::do_call" },
2020-02-11T07:23:42.1898535Z     { fn: "__rust_maybe_catch_panic" },
2020-02-11T07:23:42.1898691Z     { fn: "core::ops::function::FnOnce::call_once{{vtable.shim}}" },
2020-02-11T07:23:42.1898928Z     { fn: "<alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once" },
2020-02-11T07:23:42.1899114Z     { fn: "std::sys::unix::thread::Thread::new::thread_start" },
2020-02-11T07:23:42.1899262Z     { fn: "start_thread" },
2020-02-11T07:23:42.1899419Z     { fn: "__clone" },
2020-02-11T07:23:42.1899562Z ]
2020-02-11T07:23:42.1899965Z thread '<unnamed>' panicked at 'not implemented', src/libstd/backtrace.rs:426:9
2020-02-11T07:23:42.1900388Z 
2020-02-11T07:23:42.1900509Z 
2020-02-11T07:23:42.1900650Z failures:
2020-02-11T07:23:42.1900815Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T07:23:42.1900815Z     backtrace::tests::debug_backtrace_fmt
2020-02-11T07:23:42.1900943Z 
2020-02-11T07:23:42.1901179Z test result: FAILED. 760 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2020-02-11T07:23:42.1901324Z 
2020-02-11T07:23:42.1906247Z error: test failed, to rerun pass '-p std --lib'
2020-02-11T07:23:42.1916705Z 
2020-02-11T07:23:42.1917600Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "std" "--" "--quiet"
2020-02-11T07:23:42.1917702Z expected success, got: exit code: 101
2020-02-11T07:23:42.1917753Z 
---
2020-02-11T07:23:42.8250111Z   local time: Tue Feb 11 07:23:42 UTC 2020
2020-02-11T07:23:42.8250542Z   network time: Tue, 11 Feb 2020 07:23:42 GMT
2020-02-11T07:23:42.8250741Z == end clock drift check ==
2020-02-11T07:23:42.9119128Z 
2020-02-11T07:23:42.9212569Z ##[error]Bash exited with code '1'.
2020-02-11T07:23:42.9271872Z ##[section]Finishing: Run build
2020-02-11T07:23:42.9294247Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T07:23:42.9296193Z Task         : Get sources
2020-02-11T07:23:42.9296262Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-11T07:23:42.9296331Z Version      : 1.0.0
2020-02-11T07:23:42.9296377Z Author       : Microsoft
2020-02-11T07:23:42.9296377Z Author       : Microsoft
2020-02-11T07:23:42.9296429Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-11T07:23:42.9296501Z ==============================================================================
2020-02-11T07:23:43.3566859Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-11T07:23:43.3608313Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69038/merge to s
2020-02-11T07:23:43.3729495Z Cleaning up task key
2020-02-11T07:23:43.3730452Z Start cleaning up orphan processes.
2020-02-11T07:23:43.3836652Z Terminate orphan process: pid (3833) (python)
2020-02-11T07:23:43.4317095Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@yaahc yaahc removed the request for review from alexcrichton February 11, 2020 16:40
@dtolnay
Copy link
Member

dtolnay commented Feb 11, 2020

@bors r+

@bors
Copy link
Contributor

bors commented Feb 11, 2020

📌 Commit ec8ee7f has been approved by dtolnay

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 11, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Feb 12, 2020
Add initial debug fmt for Backtrace

Fixes the first point in rust-lang#65280

related to rust-lang#53487
bors added a commit that referenced this pull request Feb 12, 2020
Rollup of 7 pull requests

Successful merges:

 - #67954 (Support new LLVM pass manager)
 - #68981 ( Account for type params on method without parentheses)
 - #69002 (miri: improve and simplify overflow detection)
 - #69038 (Add initial debug fmt for Backtrace)
 - #69040 (Cleanup SGX entry code)
 - #69086 (Update compiler-builtins to 0.1.25)
 - #69095 (Minified theme check)

Failed merges:

r? @ghost
@bors bors merged commit ec8ee7f into rust-lang:master Feb 13, 2020
@yaahc yaahc deleted the backtrace-debug branch February 13, 2020 01:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants