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 the Borrow Tracker.

§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§

source§

impl<'tcx> Debug for FrameExtra<'tcx>

source§

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

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

impl VisitTags for FrameExtra<'_>

source§

fn visit_tags(&self, visit: &mut dyn FnMut(BorTag))

Auto Trait Implementations§

§

impl<'tcx> !RefUnwindSafe for FrameExtra<'tcx>

§

impl<'tcx> Send for FrameExtra<'tcx>

§

impl<'tcx> Sync for FrameExtra<'tcx>

§

impl<'tcx> Unpin for FrameExtra<'tcx>

§

impl<'tcx> !UnwindSafe for FrameExtra<'tcx>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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, U> Into<U> for Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.
§

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

§

fn vzip(self) -> V

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