Struct miri::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,
/* private fields */
}
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 VisitProvenance for FrameExtra<'_>
impl VisitProvenance for FrameExtra<'_>
fn visit_provenance(&self, visit: &mut VisitWith<'_>)
Auto Trait Implementations§
impl<'tcx> Freeze for FrameExtra<'tcx>
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
Mutably borrows from an owned value. Read more