Program debug: Development software helps debugging

Express Logic released its first host-based embedded development tool: TraceX. The software helps embedded developers visualize and better understand the behavior of their real-time systems (RTOSs). TraceX, the company says, can help developers discover, analyze and correct some of the most difficult system problems by logging records of events.

Express Logic released its first host-based embedded development tool: TraceX. The software helps embedded developers visualize and better understand the behavior of their real-time systems (RTOSs). While powerful multitasking features of leading-edge RTOSs, such as the ability to make rapid context changes between threads and support for many thread priority levels, make it easier to provide real-time control, these capabilities can complicate resource sharing. TraceX, the company says, can help developers discover, analyze and correct some of the most difficult system problems by logging records of events. Such logging helps to clearly see system events that occur out of view of standard debugging tools. The ability to identify and study these events and pinpoint their timing in the context of the overall system’s operation enables developers to identify bugs in less time and to optimize multitasking behavior.The improved visibility available throughTraceX event logging helps:* Solve problems of too many rows of threads;* Detect and remove priority inversions; and* Improve application performance.Designed to work with Express Logic’s ThreadX RTOS, TraceX collects a database of system and application “events” on the target system during run-time. These events include thread context switches, preemptions, suspensions, terminations, and system interrupts, all of which generally escape detection in a standard debugging environment. Events are logged in the database by ThreadX under program control, with time-stamping and active thread identification so they can be displayed later in the proper time sequence. Event logging may be stopped and restarted by the application program dynamically, for example, when an area of interest is encountered. This avoids cluttering the database and using up target memory when the system is performing correctly. —Edited by C.G. Masi , senior editor