.. _loader_exit:

Application exits prematurely
=============================

When an application is built with RTOS kernel instrumentation enabled, it is
possible that one of its runtime checks might cause the application to terminate
prematurely. Typically when this occurs, the application will halt at a
breakpoint symbol called ``loader_exit`` (in CCS) or ``__exit`` (in IAR).

Various available runtime checks are enabled via the RTOS ``.cfg``
configuration file. To determine what checks are enabled, you can see the
documentation included in the ``.cfg`` file or refer to the TI-RTOS kernal
User Guide directly.

Some applications may contain a pair of *Debug* and *Release* build
configurations. When such build configurations exist, the *Debug* configuration
takes advantage of utilizing a suite of runtime checks. These runtime check can
include but are not limited to:

- Task stack overrun checks

- System stack overrun checks

- Various asserts (Tasks, Swi, Hwi, etc...)

- Loggers (UIA loggers)

- Kernel policy checks (Checking if runtime creation/deletions are permitted)

When an runtime check detects an anomaly, the kernel responds by capturing and
printing the fault condition and halting the system at the ``exit``
or ``loader_exit`` symbol.
