bors
b60f7b51a2
Auto merge of #115045 - RalfJung:unwind-terminate-reason, r=davidtwco
when terminating during unwinding, show the reason why
With this, the output on double-panic becomes something like that:
```
thread 'main' panicked at src/tools/miri/tests/fail/panic/double_panic.rs:15:5:
first
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at src/tools/miri/tests/fail/panic/double_panic.rs:10:9:
second
stack backtrace:
0: 0xbe273a - std::backtrace_rs::backtrace::miri::trace_unsynchronized::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:99:5
1: 0xbe22e6 - std::backtrace_rs::backtrace::miri::trace::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:62:14
2: 0xbe1086 - std::backtrace_rs::backtrace::trace_unsynchronized::<[closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
3: 0xba3afd - std::sys_common::backtrace::_print_fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:67:5
4: 0xba2471 - <std::sys_common::backtrace::_print::DisplayBacktrace as std::fmt::Display>::fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:44:22
5: 0xbcf754 - core::fmt::rt::Argument::<'_>::fmt
at /home/r/src/rust/rustc.3/library/core/src/fmt/rt.rs:138:9
6: 0x9b8f81 - std::fmt::write
at /home/r/src/rust/rustc.3/library/core/src/fmt/mod.rs:1094:17
7: 0x21391d - <std::sys::unix::stdio::Stderr as std::io::Write>::write_fmt
at /home/r/src/rust/rustc.3/library/std/src/io/mod.rs:1714:15
8: 0xba37b1 - std::sys_common::backtrace::_print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:47:5
9: 0xba365b - std::sys_common::backtrace::print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:34:9
10: 0x143c67 - std::panic_hook_with_disk_dump::{closure#1}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:278:22
11: 0x144187 - std::panic_hook_with_disk_dump
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:312:9
12: 0x143659 - std::panicking::default_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:239:5
13: 0x1482a7 - std::panicking::rust_panic_with_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:729:13
14: 0x1475d5 - std::rt::begin_panic::<&str>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:650:9
15: 0xba496a - std::sys_common::backtrace::__rust_end_short_backtrace::<[closure@std::rt::begin_panic<&str>::{closure#0}], !>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:170:18
16: 0x147599 - std::rt::begin_panic::<&str>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:649:12
17: 0x31916 - <Foo as std::ops::Drop>::drop
at src/tools/miri/tests/fail/panic/double_panic.rs:10:9
18: 0x1a2b5e - std::ptr::drop_in_place::<Foo> - shim(Some(Foo))
at /home/r/src/rust/rustc.3/library/core/src/ptr/mod.rs:497:1
19: 0x202bf - main
at src/tools/miri/tests/fail/panic/double_panic.rs:16:1
20: 0xcc6a8 - <fn() as std::ops::FnOnce<()>>::call_once - shim(fn())
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:250:5
21: 0xba47d9 - std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:154:18
22: 0x141a6a - std::rt::lang_start::<()>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:166:18
23: 0xcca18 - std::ops::function::impls::<impl std::ops::FnOnce<()> for &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>::call_once
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:284:13
24: 0x146469 - std::panicking::try::do_call::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
25: 0x145e09 - std::panicking::try::<i32, &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
26: 0x7b0ac - std::panic::catch_unwind::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
27: 0x14189b - std::rt::lang_start_internal::{closure#2}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:48
28: 0x146481 - std::panicking::try::do_call::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
29: 0x145e2c - std::panicking::try::<isize, [closure@std::rt::lang_start_internal::{closure#2}]>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
30: 0x7b0d5 - std::panic::catch_unwind::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
31: 0x1418b0 - std::rt::lang_start_internal
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:20
32: 0x141a97 - std::rt::lang_start::<()>
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:165:17
thread 'main' panicked at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:126:5:
panic in a destructor during cleanup
stack backtrace:
0: 0xe9f6d7 - std::backtrace_rs::backtrace::miri::trace_unsynchronized::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:99:5
1: 0xe9f27d - std::backtrace_rs::backtrace::miri::trace::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:62:14
2: 0xe9e016 - std::backtrace_rs::backtrace::trace_unsynchronized::<[closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
3: 0xba3afd - std::sys_common::backtrace::_print_fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:67:5
4: 0xba2471 - <std::sys_common::backtrace::_print::DisplayBacktrace as std::fmt::Display>::fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:44:22
5: 0xbcf754 - core::fmt::rt::Argument::<'_>::fmt
at /home/r/src/rust/rustc.3/library/core/src/fmt/rt.rs:138:9
6: 0x9b8f81 - std::fmt::write
at /home/r/src/rust/rustc.3/library/core/src/fmt/mod.rs:1094:17
7: 0x4d0895 - <std::sys::unix::stdio::Stderr as std::io::Write>::write_fmt
at /home/r/src/rust/rustc.3/library/std/src/io/mod.rs:1714:15
8: 0xba37b1 - std::sys_common::backtrace::_print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:47:5
9: 0xba365b - std::sys_common::backtrace::print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:34:9
10: 0x400bd4 - std::panic_hook_with_disk_dump::{closure#1}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:278:22
11: 0x144187 - std::panic_hook_with_disk_dump
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:312:9
12: 0x143659 - std::panicking::default_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:239:5
13: 0x1482a7 - std::panicking::rust_panic_with_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:729:13
14: 0x40403b - std::panicking::begin_panic_handler::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:619:13
15: 0xe618b3 - std::sys_common::backtrace::__rust_end_short_backtrace::<[closure@std::panicking::begin_panic_handler::{closure#0}], !>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:170:18
16: 0x403fc8 - std::panicking::begin_panic_handler
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:617:5
17: 0xee23e9 - core::panicking::panic_nounwind_fmt
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:96:14
18: 0xee29e6 - core::panicking::panic_nounwind
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:126:5
19: 0xee365e - core::panicking::panic_in_cleanup
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:206:5
20: 0x2028a - main
at src/tools/miri/tests/fail/panic/double_panic.rs:13:1
21: 0x3895ee - <fn() as std::ops::FnOnce<()>>::call_once - shim(fn())
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:250:5
22: 0xe61725 - std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:154:18
23: 0x3fe9aa - std::rt::lang_start::<()>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:166:18
24: 0x389962 - std::ops::function::impls::<impl std::ops::FnOnce<()> for &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>::call_once
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:284:13
25: 0x4033b9 - std::panicking::try::do_call::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
26: 0x402d58 - std::panicking::try::<i32, &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
27: 0x337ff7 - std::panic::catch_unwind::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
28: 0x3fe7e7 - std::rt::lang_start_internal::{closure#2}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:48
29: 0x4033d6 - std::panicking::try::do_call::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
30: 0x402d7f - std::panicking::try::<isize, [closure@std::rt::lang_start_internal::{closure#2}]>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
31: 0x338028 - std::panic::catch_unwind::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
32: 0x1418b0 - std::rt::lang_start_internal
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:20
33: 0x3fe9dc - std::rt::lang_start::<()>
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:165:17
thread caused non-unwinding panic. aborting.
```
If we also land https://github.com/rust-lang/rust/pull/115020, the 2nd backtrace disappears, hopefully making the "panic in a destructor during cleanup" easier to see.
Fixes https://github.com/rust-lang/rust/issues/114954.
2023-08-25 08:47:18 +00:00
..
2023-08-25 00:02:54 +00:00
2023-07-24 16:29:58 +02:00
2023-08-03 10:34:57 +00:00
2023-08-01 16:51:21 +00:00
2023-08-04 13:17:39 +02:00
2023-08-14 14:07:46 -04:00
2023-08-20 00:21:47 +00:00
2023-08-03 02:18:52 +02:00
2023-08-22 15:51:12 +00:00
2023-08-17 14:33:33 +02:00
2023-08-20 06:24:44 +00:00
2023-08-07 21:14:28 +02:00
2023-08-09 14:04:10 +00:00
2023-08-01 10:08:17 +02:00
2023-08-23 21:46:18 +00:00
2023-07-10 20:09:26 +00:00
2023-07-14 07:12:35 +08:00
2023-08-09 14:04:10 +00:00
2023-08-14 23:02:36 +08:00
2023-08-09 14:04:10 +00:00
2023-07-27 14:07:08 -07:00
2023-07-10 20:09:28 +00:00
2023-08-02 14:54:37 +08:00
2023-08-15 03:44:21 +00:00
2023-07-26 00:05:00 +08:00
2023-08-06 15:06:40 +02:00
2023-08-23 11:27:33 +02:00
2023-08-02 18:51:50 +02:00
2023-08-25 09:00:14 +02:00
2023-08-22 00:00:00 +00:00
2023-07-18 21:53:34 -04:00
2023-08-21 12:51:51 +03:00
2023-07-16 15:02:08 -07:00
2023-07-17 22:06:32 +00:00
2023-07-28 13:28:02 +02:00
2023-07-24 12:25:05 +01:00
2023-08-14 21:43:56 +00:00
2023-07-22 19:57:35 +02:00
2023-08-03 23:47:57 +08:00
2023-07-05 19:52:28 -04:00
2023-08-03 15:12:44 +02:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-08-24 12:52:35 +00:00
2023-08-11 01:41:30 +00:00
2023-08-07 19:06:18 +00:00
2023-08-09 14:04:10 +00:00
2023-08-15 14:29:50 +02:00
2023-08-12 15:34:28 +02:00
2023-07-27 14:07:08 -07:00
2023-07-10 20:09:26 +00:00
2023-07-27 10:17:01 +02:00
2023-08-09 01:10:08 +00:00
2023-07-29 11:42:50 +02:00
2023-08-14 15:25:20 +02:00
2023-08-20 21:13:52 -04:00
2023-08-02 13:46:54 +02:00
2023-08-04 13:17:39 +02:00
2023-08-16 21:51:57 +01:00
2023-07-18 21:53:34 -04:00
2023-08-18 17:07:07 +01:00
2023-08-15 01:03:09 +00:00
2023-08-04 21:31:57 +02:00
2023-08-05 01:38:14 +08:00
2023-08-25 03:30:23 +00:00
2023-08-09 14:04:10 +00:00
2023-07-29 11:42:50 +02:00
2023-08-10 16:13:08 +02:00
2023-07-29 08:47:21 +08:00
2023-08-08 14:48:17 +08:00
2023-07-29 13:18:17 -04:00
2023-07-05 19:52:28 -04:00
2023-08-23 11:27:33 +02:00
2023-07-14 07:12:35 +08:00
2023-08-07 15:59:15 -07:00
2023-08-24 20:44:08 +03:00
2023-08-16 09:19:38 +00:00
2023-07-27 16:50:28 +00:00
2023-08-17 17:02:04 +00:00
2023-07-30 17:15:55 +02:00
2023-07-19 23:48:43 +00:00
2023-08-04 17:50:12 +00:00
2023-08-09 14:04:10 +00:00
2023-08-06 21:20:15 +02:00
2023-07-29 11:42:50 +02:00
2023-07-28 22:23:21 +02:00
2023-08-18 15:08:07 +01:00
2023-08-07 15:42:24 +02:00
2023-08-25 08:20:19 +02:00
2023-08-24 12:52:35 +00:00
2023-08-21 11:18:20 +08:00
2023-07-28 14:44:03 +00:00
2023-08-05 00:38:52 +00:00
2023-08-09 22:59:58 +02:00
2023-07-29 11:47:26 +02:00
2023-08-09 14:04:10 +00:00
2023-07-21 22:35:57 -07:00
2023-08-09 01:10:08 +00:00
2023-08-20 13:22:39 +00:00
2023-08-18 15:08:07 +01:00
2023-08-10 02:26:11 +02:00
2023-08-24 16:29:08 +01:00
2023-07-19 14:47:06 +00:00
2023-08-10 11:00:06 +02:00
2023-08-04 16:19:55 +00:00
2023-08-03 09:29:00 +00:00
2023-07-21 22:35:57 -07:00
2023-08-18 15:08:07 +01:00
2023-08-06 13:34:53 +00:00
2023-08-09 14:04:10 +00:00
2023-08-14 16:57:51 -07:00
2023-08-09 14:04:10 +00:00
2023-08-24 20:44:08 +03:00
2023-08-17 15:40:09 -07:00
2023-08-15 00:57:18 +08:00
2023-08-15 16:53:10 -04:00
2023-07-14 13:27:35 +01:00
2023-07-29 11:42:50 +02:00
2023-08-24 20:44:08 +03:00
2023-07-18 09:07:32 +00:00
2023-07-21 22:35:57 -07:00
2023-07-29 11:42:50 +02:00
2023-08-05 15:36:19 +02:00
2023-07-30 11:24:15 +02:00
2023-07-18 21:53:34 -04:00
2023-08-19 18:47:08 +00:00
2023-08-24 20:44:08 +03:00
2023-07-23 07:09:14 +00:00
2023-08-24 11:17:54 +08:00
2023-08-22 18:58:39 +08:00
2023-07-20 11:04:31 -07:00
2023-07-15 11:59:38 -04:00
2023-08-15 01:02:43 +00:00
2023-08-02 15:30:24 +00:00
2023-08-15 01:03:09 +00:00
2023-08-24 13:28:26 +02:00
2023-07-10 20:09:26 +00:00
2023-08-04 16:09:14 +00:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-08-09 14:04:10 +00:00
2023-07-10 20:09:26 +00:00