MacOS 14.5 Sonoma: random but persistent crashes
B - bugDS - appkit
### Description
A friend of mine has been experiencing seemingly random crashes when using my Iced app, all with a backtrace similar to this:
```
thread 'main' panicked at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:225:5:
panic in a function that cannot unwind
stack backtrace:
0: std::backtrace_rs::backtrace::libunwind::trace
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: std::backtrace_rs::backtrace::trace_unsynchronized::<<std::backtrace::Backtrace>::create::{closure#0}>
2: <std::backtrace::Backtrace>::create
3: <std::backtrace::Backtrace>::force_capture
4: generic_daw::install_panic_hook::{{closure}}
at ./generic_daw_gui/src/main.rs:50:20
5: <alloc::boxed::Box<dyn for<'a, 'b> core::ops::function::Fn<(&'a std::panic::PanicHookInfo<'b>,), Output = ()> + core::marker::Sync + core::marker::Send> as core::ops::function::Fn<(&std::panic::PanicHookInfo,)>>::call
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/boxed.rs:2254:9
6: std::panicking::panic_with_hook
at /Users/atoyo/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:833:13
7: std::panicking::panic_handler::{closure#0}
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:691:13
8: std::sys::backtrace::__rust_end_short_backtrace::<std::panicking::panic_handler::{closure#0}, !>
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:182:18
9: __rustc::rust_begin_unwind
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:689:5
10: core::panicking::panic_nounwind_fmt::runtime
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:122:22
11: core::panicking::panic_nounwind_fmt
at /Users/atoyo/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/string.rs:2447:9
12: core::panicking::panic_nounwind
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:225:5
13: core::panicking::panic_cannot_unwind
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:337:5
14: <Closure as block2::traits::IntoBlock<(),R>>::__get_invoke_stack_block::invoke
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block2-0.5.1/src/traits.rs:103:17
15: <unknown>
16: <unknown>
17: <unknown>
18: <unknown>
19: <unknown>
20: <unknown>
21: <unknown>
22: <unknown>
23: <unknown>
24: <unknown>
25: <() as objc2::encode::EncodeArguments>::__invoke
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/encode.rs:437:26
26: objc2::runtime::message_receiver::msg_send_primitive::send
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/runtime/message_receiver.rs:173:18
27: objc2::runtime::message_receiver::MessageReceiver::send_message
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/runtime/message_receiver.rs:433:38
28: objc2::__macro_helpers::msg_send::MsgSend::send_message
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/__macro_helpers/msg_send.rs:27:31
29: objc2_app_kit::generated::__NSApplication::NSApplication::run
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/macros/extern_methods.rs:247:14
30: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand::{{closure}}::{{closure}}
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/event_loop.rs:299:35
31: objc2::rc::autorelease::autoreleasepool
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/objc2-0.5.2/src/rc/autorelease.rs:438:15
32: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand::{{closure}}
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/event_loop.rs:285:13
33: winit::platform_impl::macos::event_handler::EventHandler::set
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/event_handler.rs:98:9
34: winit::platform_impl::macos::app_state::ApplicationDelegate::set_event_handler
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/app_state.rs:193:36
35: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/event_loop.rs:284:23
36: winit::platform_impl::macos::event_loop::EventLoop<T>::run
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/platform_impl/macos/event_loop.rs:271:14
37: winit::event_loop::EventLoop<T>::run_app
at /Users/atoyo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.13/src/event_loop.rs:265:25
38: iced_winit::run
at /Users/atoyo/.cargo/git/checkouts/iced-3e8cbed1b60ced94/11db5f9/winit/src/lib.rs:419:28
39: iced::daemon::Daemon<P>::run
at /Users/atoyo/.cargo/git/checkouts/iced-3e8cbed1b60ced94/11db5f9/src/daemon.rs:146:12
40: generic_daw::main
at ./generic_daw_gui/src/main.rs:40:4
41: core::ops::function::FnOnce::call_once
at /Users/atoyo/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
42: std::sys::backtrace::__rust_begin_short_backtrace
at /Users/atoyo/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:166:18
43: _main
```
The Iced version is a fork modified to use crates.io winit, to ensure the bug isn't in Iced's own fork of winit. Given the vagueness of the backtrace, my lack of access to a MacOS system, and the friend being non-technical, I haven't been able to debug any further, but I can relay information as needed.
### macOS version
```shell
ProductName: macOS
ProductVersion: 14.5
BuildVersion: 23F79
```
### Winit version
0.30.13
关闭于 2026-04-24 3 条评论