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>
impl<'tcx> Debug for FrameExtra<'tcx>
source§impl VisitTags for FrameExtra<'_>
impl VisitTags for FrameExtra<'_>
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> 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
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