Key Concept:
Software Tracing
Software Tracing and RTEF
Software tracing is especially effective and powerful in combination with the event-driven Real-Time Embedded Framework, such as QP/C or QP/C++, because a running application built of Active Objects is a highly structured affair where all important system interactions funnel through the framework and the state-machine engine. This offers a unique opportunity to instrument these relatively small parts of the overall code to gain unprecedented insight into the entire system.
For example, instrumentation added to the QP/C and QP/C++ frameworks (called QP/Spy) produces trace data that is thorough enough to reconstruct complete sequence diagrams and detailed state machine activity for all active objects in the system. You can selectively monitor all event exchanges, event queues, event pools, and time events because all these elements are controlled by the framework. Additionally, if you use one of the kernels built into QP (the cooperative QV kernel, the preemptive run-to-completion QK kernel, or the “dual-mode” QXK kernel), you can obtain all the data available to a traditional RTOS as well, such as context switches and mutex activity.