|Home > Iris APIs > Debuggable state|
Debuggable state is the state of an instance in which its registers, memory, and other resources can be freely inspected and manipulated.
Programmer's view simulations are usually in a debuggable state. They execute atomic transitions from one debuggable state to another. These abstract simulations usually do not implement the debuggable state API.
In less abstract simulation environments, for example RTL simulations, or in real hardware, a target instance might not always be in a state in which registers and memory can be freely inspected and manipulated. In such environments, instances might need to execute some simulation time to get into a debuggable state, in order to expose a consistent view of registers, memory, and other resources.
When not in a debuggable state, an instance might respond to resource reads and memory reads with approximated values, see
E_approximation, which is returned in the error field in
MemoryReadResult. It might be unable to provide a value at all, see
E_value_not_available. Or, it might respond with the actual value. Similarly, writes might fail when not in a debuggable state.