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.