Implementation of various bits and pieces of the
panic! macro and
associated runtime pieces.
Specifically, this module contains the implementation of:
- Panic hooks
- Executing a panic up to doing the actual implementation
- Shims around “try”
This function is called by the panic runtime if FFI code catches a Rust panic but doesn’t rethrow it. We don’t support this case since it messes with our panic count.
This function is called by the panic runtime if it catches an exception object which does not correspond to a Rust panic.
payload is passed through another layer of raw pointers as
&mut dyn Trait is not
BoxMeUp lazily performs allocation only when needed (this avoids allocations
when using the “abort” panic runtime).
This is the entry point of panicking for the non-format-string variants of panic!() and assert!(). In particular, this is the only entry point that supports arbitrary payloads, not just format strings.
The entry point for panicking with a formatted message.
Entry point of panics from the libcore crate (
panic_impl lang item).
Determines whether the current thread is unwinding because of panic.
An unmangled function (through
rustc_std_internal_symbol) on which to slap
Central point for dispatching panics.
This is the entry point for
It just forwards the payload to the panic runtime.
Registers a custom panic hook, replacing any that was previously registered.
Unregisters the current panic hook, returning it.