Struct FrameInfo
pub struct FrameInfo { /* private fields */ }
Expand description
Description of a frame in a backtrace for a WasmBacktrace
.
Whenever an error happens while WebAssembly is executing a
WasmBacktrace
will be attached to the error returned which can be used
to acquire this FrameInfo
. For more information see WasmBacktrace
.
Implementations§
§impl FrameInfo
impl FrameInfo
pub fn func_index(&self) -> u32
pub fn func_index(&self) -> u32
Returns the WebAssembly function index for this frame.
This function index is the index in the function index space of the WebAssembly module that this frame comes from.
pub fn module(&self) -> &Module
pub fn module(&self) -> &Module
Returns the module for this frame.
This is the module who’s code was being run in this frame.
pub fn func_name(&self) -> Option<&str>
pub fn func_name(&self) -> Option<&str>
Returns a descriptive name of the function for this frame, if one is available.
The name of this function may come from the name
section of the
WebAssembly binary, or wasmtime may try to infer a better name for it if
not available, for example the name of the export if it’s exported.
This return value is primarily used for debugging and human-readable purposes for things like traps. Note that the exact return value may be tweaked over time here and isn’t guaranteed to be something in particular about a wasm module due to its primary purpose of assisting in debugging.
This function returns None
when no name could be inferred.
pub fn module_offset(&self) -> Option<usize>
pub fn module_offset(&self) -> Option<usize>
Returns the offset within the original wasm module this frame’s program counter was at.
The offset here is the offset from the beginning of the original wasm module to the instruction that this frame points to.
Note that None
may be returned if the original module was not
compiled with mapping information to yield this information. This is
controlled by the
Config::generate_address_map
configuration option.
pub fn func_offset(&self) -> Option<usize>
pub fn func_offset(&self) -> Option<usize>
Returns the offset from the original wasm module’s function to this frame’s program counter.
The offset here is the offset from the beginning of the defining function of this frame (within the wasm module) to the instruction this frame points to.
Note that None
may be returned if the original module was not
compiled with mapping information to yield this information. This is
controlled by the
Config::generate_address_map
configuration option.
pub fn symbols(&self) -> &[FrameSymbol]
pub fn symbols(&self) -> &[FrameSymbol]
Returns the debug symbols found, if any, for this function frame.
When a wasm program is compiled with DWARF debug information then this function may be populated to return symbols which contain extra debug information about a frame including the filename and line number. If no debug information was found or if it was malformed then this will return an empty array.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FrameInfo
impl !RefUnwindSafe for FrameInfo
impl Send for FrameInfo
impl Sync for FrameInfo
impl Unpin for FrameInfo
impl !UnwindSafe for FrameInfo
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