pub struct Trap { /* private fields */ }
Expand description
A struct representing an aborted instruction execution, with a message indicating the cause.
Implementations§
source§impl Trap
impl Trap
sourcepub fn new<I: Into<String>>(message: I) -> Self
pub fn new<I: Into<String>>(message: I) -> Self
Creates a new Trap
with message
.
Example
let trap = wasmtime::Trap::new("unexpected error");
assert!(trap.to_string().contains("unexpected error"));
sourcepub fn i32_exit(status: i32) -> Self
pub fn i32_exit(status: i32) -> Self
Creates a new Trap
representing an explicit program exit with a classic i32
exit status value.
sourcepub fn i32_exit_status(&self) -> Option<i32>
pub fn i32_exit_status(&self) -> Option<i32>
If the trap was the result of an explicit program exit with a classic
i32
exit status value, return the value, otherwise return None
.
sourcepub fn display_reason<'a>(&'a self) -> impl Display + 'a
pub fn display_reason<'a>(&'a self) -> impl Display + 'a
Displays the error reason for this trap.
In particular, it differs from this struct’s Display
by only
showing the reason, and not the full backtrace. This is useful to
customize the way the trap is reported, for instance to display a short
message for user-facing errors.
sourcepub fn trace(&self) -> Option<&[FrameInfo]>
pub fn trace(&self) -> Option<&[FrameInfo]>
Returns a list of function frames in WebAssembly code that led to this trap happening.
This function return an Option
of a list of frames to indicate that
wasm frames are not always available. Frames will never be available if
backtraces are disabled via
Config::wasm_backtrace
. Frames will
also not be available for freshly-created traps. WebAssembly frames are
currently only captured when the trap reaches wasm itself to get raised
across a wasm boundary.