Software Development Tool helps avoid stack overflow problems.

Press Release Summary:



To avoid stack overflow problems in embedded systems, StackX(TM) analyzes application code and identifies maximum stack usage. Development tool performs analysis of complete application at executable code level, computing worst-case stack usage that might be experienced. Through this solution, users are told how large a stack is needed for each application thread and automatically alerted if they fail to allocate sufficient memory. This also helps to avoid wasting unnecessary memory.



Original Press Release:



Express Logic Introduces StackX(TM) to Enable Developers to Avoid Stack Overflow in Embedded Systems



New tool analyzes application code and identifies maximum stack usage

ESC-Silicon Valley, San Jose, CA, March 31, 2009 - Express Logic, Inc., the worldwide leader in royalty-free real-time operating systems (RTOS), today introduced a new development tool that helps developers avoid stack overflow problems that traditionally have plagued embedded systems. The new tool, StackX(TM), performs a comprehensive analysis of a complete application at the executable code level, computing the worst-case stack usage the application can experience. Express Logic is the only RTOS company that can identify how large a stack customers need for each application thread and automatically alerts them if they fail to allocate sufficient memory!

In the C programming language, the stack-a region of memory on which local variables are created and function arguments are passed-is allocated memory by the programmer, with the amount based on factors such as machine architecture, OS, application design, and amount of memory available. When the program requires more memory for its stack than has been allocated, the stack overflows-without warning in most cases-which can corrupt other memory areas and typically results in a program crash. Such crashes are very difficult to trace back to the stack overflow, causing programmers to expend considerable time and energy to find the overflow. As a result, they tend to overallocate stack memory as a precaution.

Deciding how much memory to allocate for the stack has been a trial and error process.
As widely respected industry commentator and consultant, Jack Ganssle, has observed:

"With experience, one learns the standard, scientific way to compute the proper size for a stack: Pick a size at random and hope."
-- Jack Ganssle, "The Art of Designing Embedded Systems," Elsevier, 1999.

StackX solves this problem for embedded developers by computing the required stack size automatically for developers, enabling them to allocate just the amount of memory needed to be safe, and avoid wasting any additional, unnecessary memory. StackX analyzes a program's executable (.elf) file, mapping all function calls, interrupt service routines, local variables, and any other factors related to stack usage. This enables StackX to calculate each thread's maximum stack memory requirements. StackX produces a "call-tree" that shows the maximum stack usage for each thread. Developers can see their program flow and are better able to optimize their code.

StackX employs a proprietary, patent-pending algorithm that is accurate, efficient, and only requires an ".elf" file. While it may be used with any .elf file, StackX has particular visibility into ThreadX® RTOS-based applications, with its thread-aware stack size calculation. It recognizes recursion conditions, where infinite memory would be required to avoid potential overflow, so programmers can correct the code, rather than attempt to allocate more memory.

"Stack overflow has been the bane of embedded developers for many years, and it's about time that someone offered a solution that's better than trial and error," commented William E. Lamie, president of Express Logic. "Our new StackX stack size analyzer now enables developers to be more efficient in their use of memory for the stack, and most importantly, to avoid the difficult stack overflow bugs that have long plagued embedded systems."

Shipping and Availability
StackX is available from Express Logic at a price of $1,000 per developer for a perpetual license.

About Express Logic
Headquartered in San Diego, CA, with field offices in Redditch, UK, and Hanover and Munich, Germany, Express Logic offers the most advanced run-time solutions and development tools for deeply embedded applications, including its popular ThreadX® RTOS, the high-performance NetX(TM) TCP/IP stack, the FileX® embedded FAT-compatible file system, the USBX(TM) Host/Device USB protocol stack, the PEGX(TM) GUI development kit, the BenchX(TM) Eclipse-based IDE, and the TraceX(TM) real-time graphical event trace and analysis tool. All products from Express Logic include full source-code and have no run-time royalties. For more information about Express Logic solutions, please visit www.expresslogic.com, call 1-888-THREADX, or email inquires to sales@expresslogic.com.

ThreadX, BenchX, TraceX, and FileX are registered trademarks, and NetX, CANX, USBX, StackX, preemption-threshold, picokernel, and UDP fast path technology, are trademarks of Express Logic, Inc. All other brands or product names are the property of their respective holders.

All Topics