pub enum Trap {
User(Box<dyn Error + Send + Sync>),
Wasm {
pc: usize,
backtrace: Backtrace,
signal_trap: Option<TrapCode>,
},
Lib {
trap_code: TrapCode,
backtrace: Backtrace,
},
OOM {
backtrace: Backtrace,
},
}
Expand description
Stores trace message with backtrace.
Variants
User(Box<dyn Error + Send + Sync>)
A user-raised trap through raise_user_trap
.
Wasm
Fields
pc: usize
The program counter in generated code where this trap happened.
backtrace: Backtrace
Native stack backtrace at the time the trap occurred
A trap raised from the Wasm generated code
Note: this trap is deterministic (assuming a deterministic host implementation)
Lib
Fields
trap_code: TrapCode
Code of the trap.
backtrace: Backtrace
Native stack backtrace at the time the trap occurred
A trap raised from a wasm libcall
Note: this trap is deterministic (assuming a deterministic host implementation)
OOM
Fields
backtrace: Backtrace
Native stack backtrace at the time the OOM occurred
A trap indicating that the runtime was unable to allocate sufficient memory.
Note: this trap is nondeterministic, since it depends on the host system.
Implementations
sourceimpl Trap
impl Trap
sourcepub fn wasm(
pc: usize,
backtrace: Backtrace,
signal_trap: Option<TrapCode>
) -> Self
pub fn wasm(
pc: usize,
backtrace: Backtrace,
signal_trap: Option<TrapCode>
) -> Self
Construct a new Wasm trap with the given source location and backtrace.
Internally saves a backtrace when constructed.