Module core::panicking

source ·
🔬This is a nightly-only experimental API. (core_panic)
Expand description

核心上的 panic 支持

核心库无法定义 panic,但可以声明 panic。 这意味着允许内核中的函数 panic,但要有用,上游 crate 必须定义内核使用的 panicing。 当前的 panic 接口是:

fn panic_impl(pi: &core::panic::PanicInfo<'_>) -> !
Run

此定义允许对任何常规消息进行 panic,但不允许 Box<Any> 值失败。 (PanicInfo 只包含一个 &(dyn Any + Send),为此我们在 PanicInfo::internal_constructor 中为其填充了一个虚拟值。) 这样做的原因是核心不允许分配。

该模块还包含其他一些紧急函数,但这只是编译器必需的 lang 项。所有 panics 都通过此函数进行了分配。 实际符号通过 #[panic_handler] 属性声明。

Functions