Orion: high-precision methods for static error analysis of c and c++ programs

  • Authors:
  • Dennis R. Dams;Kedar S. Namjoshi

  • Affiliations:
  • Bell Labs, Lucent Technologies, Murray Hill, NJ;Bell Labs, Lucent Technologies, Murray Hill, NJ

  • Venue:
  • FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe the algorithmic and implementation ideas behind a tool, Orion, for finding common programming errors in C and C++ programs using static code analysis. We aim to explore the fundamental trade-off between the cost and the precision of such analyses. Analysis methods that use simple dataflow domains run the risk of producing a high number of false error reports. On the other hand, the use of complex domains reduces the number of false errors, but limits the size of code that can be analyzed. Orion employs a two-level approach: potential errors are identified by an efficient search based on a simple domain; each discovered error path is then scrutinized by a high-precision feasibility analysis aimed at filtering out as many false errors as possible. We describe the algorithms used and their implementation in a GCC-based tool. Experimental results on a number of software programs bear out the expectation that this approach results in a high signal-to-noise ratio of reported errors, at an acceptable cost.