pub struct WasmCoreDump { /* private fields */ }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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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