4.9.4 simulationTime_runUntilDebuggableState()

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.

These are the typical steps to inspect a model that supports debuggable state:

  1. Call debuggableState_setRequest(request = true) on all instances that should be inspected and that support the debuggableState_setRequest() function.
  2. Call simulationTime_runUntilDebuggableState().
  3. Wait until IRIS_SIMULATION_TIME_EVENT occurs.
  4. Inspect the REACHED_DEBUGGABLE_STATE bit of the REASON field of IRIS_SIMULATION_TIME_EVENT to find out whether a debuggable state was reached. If not, ignore or re-iterate depending on the desired behavior.
  5. Call debuggableState_setRequest(request = false) on all instances for which the request was previously set to true.
  6. Inspect and manipulate the state.
Non-ConfidentialPDF file icon PDF version101196_0100_00_en
Copyright © 2018 Arm Limited or its affiliates. All rights reserved.