#abort #panic #panic-handler #panic-impl

nightly 无std panic-abort

将恐慌行为设置为终止

6个版本

使用旧Rust 2015

0.3.2 2019年10月16日
0.3.1 2018年9月9日
0.2.0 2018年6月4日
0.1.1 2018年4月9日

#308无标准库

Download history 382/week @ 2024-03-13 265/week @ 2024-03-20 276/week @ 2024-03-27 355/week @ 2024-04-03 313/week @ 2024-04-10 329/week @ 2024-04-17 618/week @ 2024-04-24 591/week @ 2024-05-01 247/week @ 2024-05-08 422/week @ 2024-05-15 470/week @ 2024-05-22 323/week @ 2024-05-29 326/week @ 2024-06-05 355/week @ 2024-06-12 322/week @ 2024-06-19 252/week @ 2024-06-26

1,324 每月下载量
用于 15 个crates(13 个直接使用)

MIT/Apache

8KB

panic-abort

将恐慌行为设置为终止

许可协议

许可协议为以下之一:

任选其一。

贡献

除非你明确说明,否则根据Apache-2.0许可协议定义,你提交给作品中的任何有意贡献都应按上述方式双重许可,不附加任何额外条款或条件。


lib.rs:

将恐慌行为设置为终止

此crate包含一个简单的实现,该实现通过调用intrinsics::abort来执行panic_fmt

行为

截至Rust 1.38.0,intrinsics::abort在大多数架构上降低为陷阱指令;在某些架构上,它简单地降低为对abort函数的调用(未混淆名称)。intrinsics::abort的确切行为依赖于架构和系统。

在裸机(无操作系统)系统中,陷阱指令通常以同步方式引发一个硬件异常——硬件异常与C++异常无关,在语义上更接近POSIX信号(请参阅UNIX-like系统上的man 7 signals)。

在托管应用程序(在操作系统下运行的应用程序)中,陷阱指令通常以与SIGILL对应的退出代码终止整个过程,除非注册了处理此特定信号的信号处理器(再次,请参阅UNIX-like系统上的man 7 signals)。

注意 因为intrinsics::abort是一个不稳定API,它的语义可能在任何新的Rust版本(次要或补丁版本)中更改。

使用

#![no_std]

extern crate panic_abort;

fn main() {
    panic!("argument is ignored");
}

无运行时依赖