Express Logic Simplifies Multicore Application Development with New TRACEX/MC™
ESC-Silicon Valley, San Jose, CA (April 26, 2010)
Express Logic, Inc., the worldwide leader in royalty-free real-time operating systems (RTOS), today announced the introduction of TRACEX/MC™, a multicore-enabled and expanded version of its powerful TRACEX graphical real-time event analysis tool. TRACEX/MC enables embedded developers to visualize and better understand the behavior of their real-time systems by showing thread and core activity graphically across a common timescale. With TRACEX/MC, system events like interrupts and context switches that occur out of view of standard debugging tools, can be seen clearly on each core. TRACEX/MC introduces the ability to identify and study these events, and to pinpoint the timing and core on which they occurred. By offering such visibility into the overall system operation, TRACEX/MC enables developers to resolve programming problems more easily, reducing the inordinate time typically spent debugging a multicore application.
Designed to work with Express Logic’s THREADX® RTOS, TRACEX/MC creates a database of system and application events on the target system during run-time. Events such as thread context switches, preemptions, suspensions, terminations, and system interrupts, typically escape detection in a standard debugging environments. Such events are logged in a target-resident circular buffer by THREADX, with time-stamping and active core-thread identification so they can be displayed later in the proper time sequence for the appropriate core. Event logging may be stopped and restarted by the application program dynamically when, for example, an area of interest is encountered. This approach avoids cluttering the buffer and using up target memory when the system is performing correctly.
Trace information may be uploaded to the host for analysis at any time whether at 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 upon the occurrence of a system malfunction, breakpoint, or any other time the system is halted. Once the event log has been uploaded from target memory to the host, TRACEX/MC graphically displays the events on a time-based horizontal axis, with the various system cores and associated application threads and system routines represented on the vertical axis.
Acting as a “software logic analyzer” on the host, TRACEX/MC makes system events plainly visible, clearly depicting what is going on in each core. 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. This provides quick, single-click access to the most immediate information about the event. The axes may be expanded to show more detail or collapsed to show more events. TRACEX/MC provides an “overview mode” display that shows all system events on a single horizontal line to simplify analysis of systems with many threads.
Find Multicore Race Conditions More Easily
With TRACEX/MC, complex real-time interactions and race conditions can be examined far easier than by using standard debugging techniques. Race conditions occur when system events are not deterministically sequenced, even though their order is critical to proper operation. Such application errors are difficult to identify, even on single-processor systems. On multicore systems, such conditions are significantly more challenging to detect, and can create confusing system performance requiring extensive time to examine and understand using conventional methods.
With TRACEX/MC, such conditions become clearly visible, freeing the developer from wasting time figuring out which core is doing what at a certain point in time. By providing this visibility into race conditions, as well as interrupts, preemptions and other events across multiple cores, TRACEX/MC speeds application development and further enables THREADX to get products to market faster than the competition.
Application Performance Profile and Statistics
TRACEX/MC also provides the statistics and performance profiles that portray how the system is performing and to assist in fine-tuning the load across multiple cores:
- Execution Profile—shows the percentage of execution time spent in each application thread, interrupt routine, and system idle time
- Popular Services—portrays which THREADX services are most often used by the application
- Thread Stack Usage—detailsthe amount of stack memory used by each thread in the system, enabling better optimization of memory stack allocation and prevention stack overflow
- Performance Statistics—counts the number of context switches, interrupts, priority inversions, and other critical events that occur during system operation
“With our new TRACEX/MC product, THREADX developers gain increased visibility into their system during development, further speeding their time to market,” noted William E. Lamie, president of Express Logic. “TRACEX/MC paints a graphical picture of a multicore system in a way that standard debuggers cannot, and this helps developers produce better products in less time than ever before.”
Shipping and Availability
TRACEX/MC is available for use on Windows PCs, at a license price of $1,000 per developer seat, with no license keys required.