Visit the National Instruments web site

Tool autodetects concurrency defects

A Coverity product story
Edited by the Electronicstalk editorial team May 9, 2008

Coverity, the leader in automatically improving software quality and security in C/C++ and Java, has released the release of Coverity Thread Analyser for Java.

Coverity Thread Analyser for Java is the first dynamic analysis tool for multithreaded applications that automatically detects concurrency defects that can cause data corruption and application failures.

Coverity Thread Analyser can also be used in concert with the Coverity Prevent static analysis tool to create a solution that will help developers control the complexity of writing multithreaded applications.

"The continued growth of multicore processors has forced development teams to begin creating multithreaded applications whether they are ready or not", said Michael Monticello, Security and Risk Analyst at Enterprise Management Associates.

"To successfully eliminate the concurrency defects inherent to multithreaded applications, organisations need sophisticated new tools that pinpoint these hard-to-find issues so developers can focus on bringing secure and reliable new products to market".

Coverity Thread Analyser for Java observes code as it is executed and automatically and predictably identifies race conditions and deadlocks.

The product detects not only problems that will occur in limited testing environments, but also problems that have the potential to occur over extended operations in field environments.

This distinction is particularly important for multithreaded applications that, due to their complexity, may run without failure for extremely long periods of time before a "perfect storm" of system events triggers a concurrency defect.

For example, the North American blackout of 2003 was due to a race condition that occurred after 3 million hours of consecutive system operation.

"We just evaluated Coverity Thread Analyser on one of our equity trading applications".

"We were impressed with Thread Analyser's ability to dynamically identify, with pin-point accuracy, complex concurrency issues in our Java code", said Hidekazu Sugiura, Director, Financial IT Division, Simplex Technology.

Coverity Thread Analyser is also the first dynamic analysis solution that can reduce the risk inherent in migrating complex, single-threaded code bases to perform effectively in multicore environments.

The product accomplishes this by reporting thread-shared data to users, indicating locations where a locking discipline should be introduced.

This allows developers to pro-actively identify existing and potential concurrency issues, so they can eliminate them before they cause failures in the field.

Coverity Thread Analyser also combines with the Coverity Prevent static analysis tool to give Java developers an analysis solution designed to identify and eliminate concurrency and other critical code defects that can cause slowdowns, failures and crashes.

These two Coverity products integrate static and dynamic analysis, lowering the overhead associated with dynamic analysis while further improving the accuracy of static analysis through the elimination of false positive results.

Unlike other dynamic analysis products that impose a memory and/or runtime overhead between 10x and 100x on the software systems they analyse, Coverity Thread Analyser has a 2x overhead for most programs, enabling the tool to be used in production environments that include interactive applications and applications with strict timing requirements.

"As the demand for multithreaded Java applications continues to accelerate, software developers are now faced with the pressure to deliver significantly more complex products, often on the same tight timelines as the single-threaded products that preceded them", said Ben Chelf, Chief Technology Officer at Coverity.

"Coverity Thread Analyser and Coverity Prevent help developers create high-quality multithreaded applications by combining powerful technologies to help them eliminate concurrency defects that are nearly impossible to detect with conventional methods".

Coverity Thread Analyser for Java simplifies the process of testing complex multithreaded applications that execute concurrent operations.

Not what you're looking for? Search the site.

Back to top Back to top

Contact Coverity

Related Stories

Contact Coverity

 

Newsletter sign up

Request your free weekly copy of the Electronicstalk email newsletter ...

Visit the National Instruments web site

Search by company

A Pro-talk Publication

A Pro-talk publication