Conventional debugging tools, whether at the assembly-level or at the source-level, do not address the specific demands of real-time debugging. The amount of work in the area of real-time debugging has been limited with a few exceptions.
The Remedy debugging tool [] addresses the customization of the debugging interface for real-time purposes and synchronizes on breakpoints by suspending the execution on all processors. DCT [] is a tool that allows practically non-intrusive monitoring but requires special hardware for bus access. Both RED [] and ART [] provide monitoring and debugging facilities at the price of software instrumentation. RED dedicates a co-processor to collect trace data and send it to the host system. The instrumentation is removed for production code. In ART, a special reporting task sends trace data to a host system for further processing. The instrumentation code is a permanent part of the application. It will never removed to prevent alteration of the timing. Debugging is limited to forced suspension and resumption of entities, viewing and alteration of variables, and monitoring of communication messages.
The DARTS system [] approaches the debugging problem in two stages. It first generates a program trace and then allows for debugging based on the trace data which is time-stamped to address the time distortion problem. The debugging is limited to a restricted set of events which is extracted from the control flow. This tool only supports a subset of the functionality of common debuggers, e.g. excluding data queries. The high volume of trace information and the associated overhead of trace generation may also limit its application to programs with short execution times. None of the systems make use of the compiler to enhance the debugging process.
In the absence of real-time debuggers, hardware simulators are often used which run considerably slower than the actual application and, consequently, allow only selective and not very extensive testing. In addition, changing the simulated architecture of hardware simulators is typically complicated.