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§
source§impl FrameInfo
impl FrameInfo
sourcepub 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.
sourcepub fn module_name(&self) -> Option<&str>
pub fn module_name(&self) -> Option<&str>
Returns the identifer of the module that this frame is for.
Module identifiers are present in the name
section of a WebAssembly
binary, but this may not return the exact item in the name
section.
Module names can be overwritten at construction time or perhaps inferred
from file names. The primary purpose of this function is to assist in
debugging and therefore may be tweaked over time.
This function returns None
when no name can be found or inferred.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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> 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