Skip to main content

ResumptionValue

Enum ResumptionValue 

Source
pub enum ResumptionValue {
    Normal,
    InjectCall(InjectCall),
    ThrowException(Resource<WasmException>),
    EarlyReturn(Vec<Resource<WasmValue>>),
}
Expand description

A resumption value indicates how we want to continue execution after a pause.

By default, if we are a “read-only” debugger, there is only one answer: with no mutation, according to the abstract Wasm machine semantics and current machine state.

However, this interface also supports various kinds of mutations. For example, the debugger can ask to insert a call to an arbitrary Wasm function, it can force an early return from the current function, or it can throw an exception.

This resumption value is orthogonal to the continue vs. single-step resume axis: the resumption value indicates whether we want to mutate the executing abstract machine’s state, while the single-step vs. continue axis indicates how we want to step that machine forward from whatever state is indicated (i.e., one step or many until an event).

Variants§

§

Normal

Resume normally: do not alter the machine state.

§

InjectCall(InjectCall)

Inject a call to a Wasm function at the current point, as-if the program contained a call instruction with the given values on the operand stack.

Execution is subject to ordinary debugger events as with any other; e.g., the function we call may experience breakpoint pauses, may be single-stepped if we resume with single-step, etc.

If the injected function call completes normally, an injected-call-return debug event is raised with the return value(s).

§

ThrowException(Resource<WasmException>)

Resume as-if an exception were thrown at the current point.

§

EarlyReturn(Vec<Resource<WasmValue>>)

Force a return from the current function frame, with the given value(s) as return value(s).

Trait Implementations§

Source§

impl Debug for ResumptionValue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ComponentType for ResumptionValue

Source§

impl Lift for ResumptionValue

Source§

impl Lower for ResumptionValue

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> GetSetFdFlags for T

Source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
Source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
Source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T