Struct WasmCoreDump
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§
§impl WasmCoreDump
impl WasmCoreDump
pub 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.
pub fn modules(&self) -> &[Module]
pub fn modules(&self) -> &[Module]
All modules instantiated inside the store when the core dump was created.
pub fn instances(&self) -> &[Instance]
pub fn instances(&self) -> &[Instance]
All instances within the store when the core dump was created.
pub fn globals(&self) -> &[Global]
pub fn globals(&self) -> &[Global]
All globals, instance- or host-defined, within the store when the core dump was created.
pub fn memories(&self) -> &[Memory]
pub fn memories(&self) -> &[Memory]
All memories, instance- or host-defined, within the store when the core dump was created.
pub 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§
§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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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