Struct miri::MiriConfig
source · pub struct MiriConfig {Show 34 fields
pub env: Vec<(OsString, OsString)>,
pub validate: bool,
pub borrow_tracker: Option<BorrowTrackerMethod>,
pub unique_is_unique: bool,
pub check_alignment: AlignmentCheck,
pub isolated_op: IsolatedOp,
pub ignore_leaks: bool,
pub forwarded_env_vars: Vec<String>,
pub set_env_vars: FxHashMap<String, String>,
pub args: Vec<String>,
pub seed: Option<u64>,
pub tracked_pointer_tags: FxHashSet<BorTag>,
pub tracked_call_ids: FxHashSet<CallId>,
pub tracked_alloc_ids: FxHashSet<AllocId>,
pub track_alloc_accesses: bool,
pub data_race_detector: bool,
pub weak_memory_emulation: bool,
pub track_outdated_loads: bool,
pub cmpxchg_weak_failure_rate: f64,
pub measureme_out: Option<String>,
pub panic_on_unsupported: bool,
pub backtrace_style: BacktraceStyle,
pub provenance_mode: ProvenanceMode,
pub mute_stdout_stderr: bool,
pub preemption_rate: f64,
pub report_progress: Option<u32>,
pub retag_fields: RetagFields,
pub native_lib: Option<PathBuf>,
pub gc_interval: u32,
pub num_cpus: u32,
pub page_size: Option<u64>,
pub collect_leak_backtraces: bool,
pub address_reuse_rate: f64,
pub address_reuse_cross_thread_rate: f64,
}
Expand description
Configuration needed to spawn a Miri instance.
Fields§
§env: Vec<(OsString, OsString)>
The host environment snapshot to use as basis for what is provided to the interpreted program.
(This is still subject to isolation as well as forwarded_env_vars
.)
validate: bool
Determine if validity checking is enabled.
borrow_tracker: Option<BorrowTrackerMethod>
Determines if Stacked Borrows or Tree Borrows is enabled.
unique_is_unique: bool
Whether core::ptr::Unique
receives special treatment.
If true
then Unique
is reborrowed with its own new tag and permission,
otherwise Unique
is just another raw pointer.
check_alignment: AlignmentCheck
Controls alignment checking.
isolated_op: IsolatedOp
Action for an op requiring communication with the host.
ignore_leaks: bool
Determines if memory leaks should be ignored.
forwarded_env_vars: Vec<String>
Environment variables that should always be forwarded from the host.
set_env_vars: FxHashMap<String, String>
Additional environment variables that should be set in the interpreted program.
args: Vec<String>
Command-line arguments passed to the interpreted program.
seed: Option<u64>
The seed to use when non-determinism or randomness are required (e.g. ptr-to-int cast, getrandom()
).
The stacked borrows pointer ids to report about
tracked_call_ids: FxHashSet<CallId>
The stacked borrows call IDs to report about
tracked_alloc_ids: FxHashSet<AllocId>
The allocation ids to report about.
track_alloc_accesses: bool
For the tracked alloc ids, also report read/write accesses.
data_race_detector: bool
Determine if data race detection should be enabled
weak_memory_emulation: bool
Determine if weak memory emulation should be enabled. Requires data race detection to be enabled
track_outdated_loads: bool
Track when an outdated (weak memory) load happens.
cmpxchg_weak_failure_rate: f64
Rate of spurious failures for compare_exchange_weak atomic operations, between 0.0 and 1.0, defaulting to 0.8 (80% chance of failure).
measureme_out: Option<String>
If Some
, enable the measureme
profiler, writing results to a file
with the specified prefix.
panic_on_unsupported: bool
Panic when unsupported functionality is encountered.
backtrace_style: BacktraceStyle
Which style to use for printing backtraces.
provenance_mode: ProvenanceMode
Which provenance to use for int2ptr casts
mute_stdout_stderr: bool
Whether to ignore any output by the program. This is helpful when debugging miri as its messages don’t get intermingled with the program messages.
preemption_rate: f64
The probability of the active thread being preempted at the end of each basic block.
report_progress: Option<u32>
Report the current instruction being executed every N basic blocks.
retag_fields: RetagFields
Whether Stacked Borrows and Tree Borrows retagging should recurse into fields of datatypes.
native_lib: Option<PathBuf>
The location of a shared object file to load when calling external functions FIXME! consider allowing users to specify paths to multiple files, or to a directory
gc_interval: u32
Run a garbage collector for BorTags every N basic blocks.
num_cpus: u32
The number of CPUs to be reported by miri.
page_size: Option<u64>
Requires Miri to emulate pages of a certain size
collect_leak_backtraces: bool
Whether to collect a backtrace when each allocation is created, just in case it leaks.
address_reuse_rate: f64
Probability for address reuse.
address_reuse_cross_thread_rate: f64
Probability for address reuse across threads.
Trait Implementations§
source§impl Clone for MiriConfig
impl Clone for MiriConfig
source§fn clone(&self) -> MiriConfig
fn clone(&self) -> MiriConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more