5.12 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 ResourceReadResult and 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.

This section contains the following subsections:
Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.