pub struct SimFlags {
pub strict: bool,
pub use_real_traps: bool,
pub machine_init: MachineInitStrategy,
pub debug_frames: bool,
pub ignore_privilege: bool,
}Expand description
Configuration flags for Simulator.
These can be modified after the Simulator is created with Simulator::new
and their effects should still apply.
Read the field descriptions for more details.
Fields§
§strict: boolWhether strict mode is enabled.
Strict mode adds additional integrity checks to the simulator, such as verifying initialization state is normal for provided data.
By default, this flag is false.
use_real_traps: boolWhether to use emulated version of certain traps.
Certain traps and exceptions have two separate implementations within Simulator, namely:
HALTorTRAP x25- Privilege mode exception
- Illegal opcode exception
- Access violation exception
This flag allows us to configure between the two implementations:
- virtual (
false): On execution of one of these interrupts, the simulator breaks and prints its own error. - real (
true): On execution of one of these interrupts, the simulator delegates the error to the machine’s OS and continues through the OS.
Activating real traps is useful for maintaining integrity to the LC-3 ISA, whereas virtual HALT preserves the state of the machine prior to calling the interrupt routines and can provide slightly more helpful error messages.
By default, this flag is false.
machine_init: MachineInitStrategyThe creation strategy for uninitialized Words.
This is used to initialize the mem and reg_file fields.
By default, this flag is MachineInitStrategy::default.
debug_frames: boolWhether to store debugging information about call frames.
This flag only goes into effect after a Simulator::new or Simulator::reset call.
By default, this flag is false.
ignore_privilege: boolIf true, privilege checks are ignored and the simulator runs as though the executor has supervisor level privilege.
By default, this flag is false.