B.3.7 CADI_EXECMODE_t

This section describes the values in the CADI_EXECMODE_t enum.

enum CADI_EXECMODE_t {
     CADI_EXECMODE_Stop = 0,
     CADI_EXECMODE_Run = 1,
     CADI_EXECMODE_Bpt = 2,
     CADI_EXECMODE_Error = 3,
     CADI_EXECMODE_HighLevelStep = 4,      // Reserved for future use.
     CADI_EXECMODE_RunUnconditionally = 5, // Reserved for future use.
     CADI_EXECMODE_ResetDone = 5,
     CADI_EXECMODE_ENUM_MAX = 0xFFFFFFFF    };

modeChange() uses the enum values:

modeChange(CADI_EXECMODE_Stop)
The simulation was in state "running" and has now stopped. This callback is always the last one in a sequence of callbacks when the simulation stopped. If the stop was because one or more breakpoints have been hit, then this callback follows one or more modeChange(CADI_EXECMODE_Bpt, num) callbacks where num is the breakpoints being hit. CADIExecStop() eventually results in a modeChange(CADI_EXECMODE_Stop) callback. This callback implies a refresh(REGISTERS|MEMORY) callback that indicates a debugger must that assume registers and memory have changed.
modeChange(CADI_EXECMODE_Run)
The simulation was in state "stopped" and is now running. CADIExecContinue() and CADIExecSingleStep() eventually result in a modeChange(CADI_EXECMODE_Run) callback.
modeChange(CADI_EXECMODE_Bpt, num)

The breakpoint number num of the breakpoint being hit is passed as the second parameter in the modeChange callback. This callback can be called several times in a straight sequence if multiple breakpoints have been hit at the same time. A modeChange(CADI_EXECMODE_Stop) callback is always following and terminating this sequence, except if continueExecution was true for all breakpoints being hit.

Note:

This callback does not mean that the simulation stopped. It can precede more modeChange(CADI_EXECMODE_Bpt, num) callbacks. The final modeChange(CADI_EXECMODE_Stop) is responsible for signaling that the simulation stopped.
modeChange(CADI_EXECMODE_Error)

This callback is the same as modeChange(CADI_EXECMODE_Stop), but the model is in a state "stopped and error" after this callback. Consequently, all execution control functions are disabled. CADIExecReset() must be called first to enable them again. This callback does not precede another modeChange(CADI_EXECMODE_Stop) callback, it implies modeChange(CADI_EXECMODE_Stop). This callback implies a refresh(REGISTERS|MEMORY) callback which means that a debugger must assume that registers and memory have changed.

modeChange(CADI_EXECMODE_ResetDone)

The CADIExecReset() request that was recently requested by a debugger is now complete. This callback is always the last one in a sequence of callbacks that are caused by a CADIExecReset(). If the model was running when CADIExecReset() was issued, a modeChange(CADI_EXECMODE_Stop) might happen before this callback.

CADIExecReset() is an asynchronous call. Each debugger that is connected to a target, including the caller, receives this callback after the simulation finishes the reset.

This callback implies a refresh(REGISTERS|MEMORY) callback that indicates that a debugger must assume that registers and memory have changed.

Non-ConfidentialPDF file icon PDF version100963_0200_03_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.