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 在 无标准库
1,324 每月下载量
用于 15 个crates(13 个直接使用)
8KB
panic-abort
将恐慌行为设置为终止
许可协议
许可协议为以下之一:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确说明,否则根据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");
}