5.12.2 Reaching debuggable state

The global, non-instance-specific function, simulationTime_runUntilDebuggableState() advances simulation time until all instances for which a debuggable state is currently requested, have acknowledged it.

This function is a variant of simulationTime_run(). They generally have the same semantics, except that this function sets up a global state in which simulation time stops automatically when all instances that have the debuggable-state-request flag set also have the debuggable-state-acknowledge flag set.

This is a global function and so does not take an instId argument.

The simulation time might stop before reaching a debuggable state for the same reasons as for simulationTime_run(), for example hitting breakpoints, or calling simulationTime_stop().

To find out whether a debuggable state was reached, enable the IRIS_SIMULATION_TIME_EVENT event source. The REACHED_DEBUGGABLE_STATE bit in the REASON field indicates whether a debuggable state was reached.

Note:

  • After requesting one or more instances enter a debuggable state, if you then call simulationTime_run() instead of simulation_runUntilDebuggableState(), this does not cause the simulation time to stop progressing when all the instances enter a debuggable state.
  • Simulation time progresses while bringing an instance into a debuggable state, so it is intrusive. The state of an instance in the system might change as a result of bringing an instance into a debuggable state.
Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.