|Home > Iris APIs > Debuggable state API|
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. They generally 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 approximate values and return
E_approximation in the error field in
MemoryReadResult. It might be unable to provide a value at all, and return
E_value_not_available. Or, it might respond with the actual value. Similarly, writes might fail when not in a debuggable state.