6 releases
Uses old Rust 2015
0.3.2 | Oct 16, 2019 |
---|---|
0.3.1 | Sep 9, 2018 |
0.2.0 | Jun 4, 2018 |
0.1.1 | Apr 9, 2018 |
#389 in No standard library
1,116 downloads per month
Used in 15 crates
(13 directly)
8KB
panic-abort
Set the panicking behavior to abort
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
Set the panicking behavior to abort
This crate contains an implementation of panic_fmt
that simply calls intrinsics::abort
.
Behavior
As of Rust 1.38.0, intrinsics::abort
lowers to a trap instruction on most architectures; on
some architectures it simply lowers to call to the abort
function (unmangled name). The exact
behavior of intrinsics::abort
is architecture and system dependent.
On bare-metal (no OS) systems the trap instruction usually causes a hardware exception to be
raised in a synchronous fashion -- hardware exceptions have nothing to do with C++ exceptions
and are closer in semantics to POSIX signals (see man 7 signals
on UNIX-y systems).
On hosted applications (applications running under an OS), the trap instruction usually
terminates the whole process with an exit code that corresponds to SIGILL unless a signal
handler that handles this particular signal was registered (again, see man 7 signals
on UNIX-y
systems).
HEADS UP Because intrinsics::abort
is an unstable API its semantics could change in any new
Rust release (minor or patch release).
Usage
#![no_std]
extern crate panic_abort;
fn main() {
panic!("argument is ignored");
}