Examine a variety of architectural state, including general purpose registers, control registers, debug registers, floating point registers, etc.
Change the architectural registers at runtime, including general purpose registers, control registers, debug registers, floating point registers, etc.
Examine, as well as modify, the data contained in the physical memory with ease using high-level system APIs.
Programmatically take snapshots of the simulation, save to disk, and restore and resume execution.