Crate miri Copy item path Source pub use rustc_const_eval::interpret ;
pub use rustc_const_eval::interpret::AllocMap ;
pub use rustc_const_eval::interpret::Provenance as _;
pub use crate::alloc_addresses::EvalContextExt as _;
pub use crate::borrow_tracker::stacked_borrows::EvalContextExt as _;
pub use crate::borrow_tracker::tree_borrows::EvalContextExt as _;
pub use crate::borrow_tracker::EvalContextExt as _;
pub use crate::concurrency::data_race::EvalContextExt as _;
pub use crate::concurrency::init_once::EvalContextExt as _;
pub use crate::concurrency::sync::EvalContextExt as _;
pub use crate::concurrency::thread::EvalContextExt as _;
pub use crate::diagnostics::EvalContextExt as _;
pub use crate::helpers::EvalContextExt as _;
pub use crate::helpers::ToU64 as _;
pub use crate::helpers::ToUsize as _;
pub use crate::intrinsics::EvalContextExt as _;
pub use crate::operator::EvalContextExt as _;
pub use crate::provenance_gc::EvalContextExt as _;
pub use crate::shims::env::EvalContextExt as _;
pub use crate::shims::foreign_items::EvalContextExt as _;
pub use crate::shims::io_error::EvalContextExt as _;
pub use crate::shims::io_error::LibcError ;
pub use crate::shims::os_str::EvalContextExt as _;
pub use crate::shims::panic::EvalContextExt as _;
pub use crate::shims::time::EvalContextExt as _;
pub use crate::shims::unwind::EvalContextExt as _;
pub use rustc_const_eval::interpret ::*;
alloc 🔒 alloc_addresses 🔒 This module is responsible for managing the absolute addresses that allocations are located at,
and for casting between pointers and integers based on those addresses. borrow_tracker 🔒 clock 🔒 concurrency 🔒 data_structures 🔒 diagnostics 🔒 eval 🔒 Main evaluator loop and setting up the initial stack frame. helpers 🔒 intrinsics 🔒 machine 🔒 Global machine state as well as implementation of the interpreter engine
Machine
trait. math 🔒 native_lib operator 🔒 provenance_gc 🔒 shims 🔒 callback Creates a DynMachineCallback
: enter_trace_span Enters a tracing::info_span only if the “tracing” feature is enabled, otherwise does nothing.
This is like rustc_const_eval::enter_trace_span except that it does not depend on the
Machine trait to check if tracing is enabled, because from the Miri codebase we can directly
check whether the “tracing” feature is enabled, unlike from the rustc_const_eval codebase. AllocExtra Extra per-allocation data BorTag Tracking pointer provenance CatchUnwindData Holds all of the relevant data for when unwinding hits a try
frame. CondvarRef DedupRangeMap DynSym Type of dynamic symbols (for dlsym
et al) FrameExtra Extra data stored with each stack frame GenmcConfig GenmcCtx InitOnceRef Instant Item An item in the per-location borrow stack. LiveAllocs MaybeEnteredTraceSpan This struct is needed to enforce #[must_use]
on values produced by enter_trace_span even
when the “tracing” feature is not enabled. MiriAllocBytes Allocation bytes that explicitly handle the layout of the data they’re storing.
This is necessary to interface with native code that accesses the program store in Miri. MiriConfig Configuration needed to spawn a Miri instance. MiriMachine The machine itself. MonoHashMap MonotonicClock A monotone clock used for Instant
simulation. MutexRef PrimitiveLayouts Precomputed layouts of primitive types RwLockRef Stack Extra per-location state. Stacks Extra per-allocation state. ThreadId A thread identifier. ThreadManager A set of threads. TlsData Tree Tree structure with both parents and children since we want to be
able to traverse the tree efficiently in both directions. TreeBorrowsParams Parameters that Tree Borrows can take. AccessKind Indicates which kind of access is being performed. AlignmentCheck AtomicFenceOrd Valid atomic fence orderings, subset of atomic::Ordering. AtomicReadOrd Valid atomic read orderings, subset of atomic::Ordering. AtomicRwOrd Valid atomic read-write orderings, alias of atomic::Ordering (not non-exhaustive). AtomicWriteOrd Valid atomic write orderings, subset of atomic::Ordering. BacktraceStyle BlockReason Keeps track of what the thread is blocked on. BorrowTrackerMethod Which borrow tracking method to use EmulateItemResult What needs to be done after emulating an item (a shim or an intrinsic) is done. EnvVars IoError A representation of an IO error: either a libc error name,
or a host error. IsolatedOp MiriEntryFnType MiriMemoryKind Extra memory kinds NonHaltingDiagnostic Miri specific diagnostics Permission Indicates which permission is granted (by this item to some pointers) Provenance Pointer provenance. ProvenanceExtra The “extra” information a pointer has over a regular AllocId. ProvenanceMode RejectOpWith RetagFields Policy on whether to recurse into fields to retag TerminationInfo Details of premature program termination. TimeoutAnchor Whether the timeout is relative or absolute. TimeoutClock The clock to use for the timeout you are asking for. UnblockKind The argument type for the “unblock” callback, indicating why the thread got unblocked. ValidationMode MAX_CPUS The maximum number of CPUs supported by miri. MIRI_DEFAULT_ARGS Insert rustc arguments at the beginning of the argument list that Miri wants to be
set per default, for maximal validation power.
Also disable the MIR pass that inserts an alignment check on every pointer dereference. Miri
does that too, and with a better error message. MachineCallback Trait for callbacks handling asynchronous machine operations. MiriInterpCxExt A little trait that’s useful to be inherited by extension traits. VisitProvenance create_ecx Returns a freshly created InterpCx
.
Public because this is also used by priroda
. eval_entry Evaluates the entry function specified by entry_id
.
Returns Some(return_code)
if program execution completed.
Returns None
if an evaluation error occurred. report_error Emit a custom diagnostic without going through the miri-engine machinery. DynMachineCallback Type alias for boxed machine callbacks with generic argument type. DynUnblockCallback Type alias for unblock callbacks, i.e. machine callbacks invoked when
a thread gets unblocked. ImmTy MPlaceTy MemoryKind MiriInterpCx A rustc InterpCx for Miri. OpTy PlaceTy Pointer Scalar StackEmptyCallback StrictPointer VisitWith