pub struct WasmCoreDump { /* private fields */ }
coredump
and runtime
only.Expand description
Representation of a core dump of a WebAssembly module
When the Config::coredump_on_trap option is enabled this structure is
attached to the anyhow::Error
returned from many Wasmtime functions that
execute WebAssembly such as Instance::new
or Func::call
. This can be
acquired with the anyhow::Error::downcast
family of methods to
programmatically inspect the coredump. Otherwise since it’s part of the
error returned this will get printed along with the rest of the error when
the error is logged.
Note that some state, such as Wasm locals or values on the operand stack, may be optimized away by the compiler or otherwise not recovered in the coredump.
Capturing of wasm coredumps can be configured through the
Config::coredump_on_trap
method.
For more information about errors in wasmtime see the documentation of the
Trap
type.
Implementations§
Source§impl WasmCoreDump
impl WasmCoreDump
Sourcepub fn frames(&self) -> &[FrameInfo]
pub fn frames(&self) -> &[FrameInfo]
The stack frames for this core dump.
Frames appear in callee to caller order, that is youngest to oldest frames.
Sourcepub fn modules(&self) -> &[Module]
pub fn modules(&self) -> &[Module]
All modules instantiated inside the store when the core dump was created.
Sourcepub fn instances(&self) -> &[Instance]
pub fn instances(&self) -> &[Instance]
All instances within the store when the core dump was created.
Sourcepub fn globals(&self) -> &[Global]
pub fn globals(&self) -> &[Global]
All globals, instance- or host-defined, within the store when the core dump was created.
Sourcepub fn memories(&self) -> &[Memory]
pub fn memories(&self) -> &[Memory]
All memories, instance- or host-defined, within the store when the core dump was created.
Sourcepub fn serialize(&self, store: impl AsContextMut, name: &str) -> Vec<u8> ⓘ
pub fn serialize(&self, store: impl AsContextMut, name: &str) -> Vec<u8> ⓘ
Serialize this core dump into the standard core dump binary format.
The name
parameter may be a file path, URL, or arbitrary name for the
“main” Wasm service or executable that was running in this store.
Once serialized, you can write this core dump to disk, send it over the network, or pass it to other debugging tools that consume Wasm core dumps.
Trait Implementations§
Source§impl Debug for WasmCoreDump
impl Debug for WasmCoreDump
Auto Trait Implementations§
impl Freeze for WasmCoreDump
impl !RefUnwindSafe for WasmCoreDump
impl Send for WasmCoreDump
impl Sync for WasmCoreDump
impl Unpin for WasmCoreDump
impl !UnwindSafe for WasmCoreDump
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more