QP/C  7.2.1
Real-Time Embedded Framework
No Matches
Software Tracing

Time ManagementCooperative Run-to-Completion Kernel

A running application built of active objects is a highly structured affair where all important system interactions funnel through the real-time framework and the event processor executing the state machines. This arrangement offers a unique opportunity for applying software-tracing techniques. In a nutshell, software tracing is similar to peppering the code with printf() statements, which is called instrumenting the code, to log interesting discrete events for subsequent retrieval from the target system and analysis. Of course, a good software-tracing instrumentation can be much less intrusive and more powerful than the primitive printf().

Software tracing in QP

By instrumenting just the real-time framework code you can gain an unprecedented wealth of information about the running system, far more detailed and comprehensive than any traditional RTOS can provide. (This is, of course, yet another benefit of control inversion.) The software trace data from the framework alone allows you to produce complete, time-stamped sequence diagrams and detailed state machine activity for all active objects in the system. This ability can form the foundation of the whole testing strategy for your application. In addition, individual active objects are natural entities for unit testing, which you can perform simply by injecting events into the active objects and collecting the trace data. Software tracing at the framework level makes all this comprehensive information available to you, even with no instrumentation added to the application-level code.



QP shall implement the Time Events


Time ManagementCooperative Run-to-Completion Kernel