CodeSonar creates an abstract model of the program, capturing its syntax, call graphs, and control-flow graphs |
GrammaTech, Inc., a leading manufacturer of source-code analysis tools, today announced that it has developed a sophisticated new program-analysis engine that identifies data race conditions and other serious concurrency defects. The engine is being incorporated into the company’s popular CodeSonar static-analysis tool.
Development teams are embracing multi-core processors such as the new quad-core Intel® Core™ i7 processor because they are the most promising avenue to better computing performance. This is because traditional performance-improvement approaches, such as increasing clock speed, decreasing memory access times, and clever scheduling of instructions are no longer yielding major improvements. Unfortunately, multi-core systems are much less forgiving of programming errors and can be extremely difficult to debug with currently available tools, especially when bugs are intermittent and difficult to reproduce.
The severity of the problem caught the attention of the Defense Advanced Research Projects Agency (DARPA), which awarded a $749k contract to GrammaTech to develop an innovative approach to eliminating serious defects that commonly plague multi-core applications. The resulting analysis pinpoints such problems without testing, slashing development cost, and reducing the risk of defects slipping into production. The analysis can also be applied to multi-threaded applications running on a single processor.
Paul Anderson, GrammaTech’s vice president of Engineering, commented, “The analysis has already proven itself in pilot deployments. For example, it identified serious defects in a mission-critical avionics application being developed by an aerospace company. This is very significant because avionics applications are developed with much more care and testing than most other applications. Yet GrammaTech’s deep concurrency analysis uncovered significant problems in the application.”
Anderson continued, “The analysis catches the type of concurrency problems that are the most difficult for developers. It creates an abstract model, of what locks are held by what threads, and considers possible interleavings. By automating this process, it finds situations in which code is susceptible to problematic interleavings, which developers can miss through manual analysis.”
The technology is compatible with a wide range of compilers, including ARM RealView, CodeWarrior, GCC, G++, Green Hills, HI-TECH, IAR, Intel C/C++, Microsoft Visual Studio, Renesas, Sun C/C++, Texas Instruments, CodeComposer, Wind River, and many others. For some run-time environments, it may be necessary to model synchronization primitives, but the system has been designed to make this easy.
About CodeSonar
CodeSonar is a sophisticated static-analysis tool that performs a whole-program, interprocedural analysis on code and identifies complex programming bugs that can result in system crashes, memory corruption and other serious problems. Like a compiler, CodeSonar does a build of code using the existing build environment. But, instead of creating object code, CodeSonar creates an abstract model of the program, capturing its syntax, call graphs, and control-flow graphs. Then a synthesis phase, analogous to linking, generates a program model, which is executed symbolically by CodeSonar’s analysis engine. Automated reasoning about feasible paths and data is used to identify tricky bugs that result from complex interactions among procedures.
CodeSonar is backed by years of research and is the most powerful source code analysis tool available for embedded development. It is distinguished by its ability to find more serious defects than any other tool on the market. For this reason, it has been adopted by leading organizations developing medical devices, spacecraft, industrial and automotive control systems, electronics and similar applications. CodeSonar runs on Windows, Linux, Solaris, and Mac OSX operating systems and supports most compilers.
About GrammaTech
GrammaTech’s static-analysis tools are used worldwide by startups, Fortune 500 companies, educational institutions and government agencies. The staff includes twelve researchers with PhDs in programming languages and program analysis. More information about GrammaTech can be found at www.grammatech.com.