Struct miri::machine::FrameExtra

source ·
pub struct FrameExtra<'tcx> {
    pub borrow_tracker: Option<FrameState>,
    pub catch_unwind: Option<CatchUnwindData<'tcx>>,
    pub timing: Option<DetachedTiming>,
    pub is_user_relevant: bool,
}
Expand description

Extra data stored with each stack frame

Fields§

§borrow_tracker: Option<FrameState>

Extra data for Stacked Borrows.

§catch_unwind: Option<CatchUnwindData<'tcx>>

If this is Some(), then this is a special “catch unwind” frame (the frame of try_fn called by try). When this frame is popped during unwinding a panic, we stop unwinding, use the CatchUnwindData to handle catching.

§timing: Option<DetachedTiming>

If measureme profiling is enabled, holds timing information for the start of this frame. When we finish executing this frame, we use this to register a completed event with measureme.

§is_user_relevant: bool

Indicates whether a Frame is part of a workspace-local crate and is also not #[track_caller]. We compute this once on creation and store the result, as an optimization. This is used by MiriMachine::current_span and MiriMachine::caller_span

Trait Implementations§

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.

Size: 240 bytes