Graphical view of real-time system events
Express Logic announced the release of TraceX, its host-based embedded development tool. TraceX enables embedded developers to visualize and better understand the behavior of their real-time systems. With TraceX, developers can see clearly the occurrence of system events like interrupts and context switches that occur out of view of standard debugging tools. The ability to identify and study these events, and to pinpoint the timing of their occurrence in the context of the overall system’s operation enables developers to resolve programming problems by finding unexpected behaviour and letting them investigate specific areas further.
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 t-hread 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. Trace information is stored in a circular buffer on the target system, with buffer size determined by the application. That information may be uploaded to the host for analysis at any time – either post mortem or on encountering a breakpoint. A circular buffer enables the most recent “N” events to be stored at all times, and to be available for inspection on system malfunction or another significant event. Once the event log has been uploaded from target memory to the host, TraceX displays the events graphically on a horizontal axis representing time, with the various application threads and system routines to which the events are related listed along the vertical axis.
TraceX creates a “software logic analyzer” on the host, making system events plainly visible. Events are represented by color coded icons, located at the point of occurrence along the horizontal timeline, to the right of the relevant thread or system routine. When an event icon is selected, the corresponding information for that event is displayed, as well as the information for the two previous and two subsequent events. This provides quick,single-click access to the most immediate information about the event and its immediately surrounding events. The axes may be expanded to show more detail or collapsed to show more events.
TraceX provides an “overview mode” display that shows all system events on a single horizontal line to simplify analysis of systems with many threads. With TraceX, complex real-time interactions and race conditions can be examined easier than by using standard debugging techniques. Race conditions occur when system events are not deterministically sequenced, and their order is critical to proper operation. Such application errors are generally difficult to identify, and TraceX sheds valuable light on them, making them easier to find and correct. By providing this visibility into race conditions, as well as interrupts, preemptions and other events, TraceX speeds application development and further enables ThreadX to get products to market faster than the competition.
Shipping and Availability
TraceX is available from Express Logic immediately, for use on Windows hosts, for all target architectures supported by ThreadX, for a license price of $1,000.