skip to main content
10.1145/2025113.2025183acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
demonstration

Static deep error checking in large system applications using parfait

Published:09 September 2011Publication History

ABSTRACT

In this paper, we introduce Parfait, a static bug-checking tool for C/C++ applications. Parfait achieves precision and scalability at the same time by employing a layered program analysis framework. In Parfait, different analyses varying in precision and runtime expense can be invoked on demand to detect defects of a specific type, effectively achieving higher precision with smaller runtime overheads. Several production organizations within Oracle have started to integrate Parfait into their development process. Feedback from various production teams suggests that it is precise and scalable: the tool is able to analyze the OpenSolarisTM operating system and network consolidation (ON) with more than 6 million lines of code in 1 hour, and report thousands of defects with a false positive rate of close to 10%.

References

  1. C. Cifuentes, C. Hoermann, N. Keynes, L. Li, S. Long, E. Mealy, M. Mounteney, and B. Scholz. BegBunch: Benchmarking for C bug detection tools. In Proceedings of the 2009 international workshop on Defects in large software systems, July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. Cifuentes and B. Scholz. Parfait -- designing a scalable bug checker. In Proceedings of the ACM SIGPLAN Static Analysis Workshop, pages 4--11, 12 June 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. The ASTRÉE analyser. In Proceedings of the 2005 European Symposium on Programming, pages 21--30. Springer, April 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Fortify Static Code Analysis (SCA). http://www.coverity.com/products/coverity-prevent.html. Last accessed: 1 June 2011.Google ScholarGoogle Scholar
  5. D. Dams and K. S. Namjoshi. Orion: High-precision methods for static error analysis of c and c programs. In FMCO'05: Proceedings of the 4th International Symposium on Formal Methods for Components and Objects, volume 4111 of Lecture Notes in Computer Science, pages 138--160. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Deutsch. Static verification of dynamic properties. PolySpace White Paper, February 2004.Google ScholarGoogle Scholar
  7. D. Evans and D. Larochelle. Improving security using extensible lightweight static analysis. IEEE Software, pages 42--51, January/February 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Fortify Static Code Analysis (SCA). http://www.fortify.com/products/sca/. Last accessed: 1 June 2011.Google ScholarGoogle Scholar
  9. GrammaTech CodeSonar. http://www.grammatech.com/products/codesonar/overview.html. Last accessed: 1 April 2008.Google ScholarGoogle Scholar
  10. D. Hovemeyer and W. Pugh. Finding bugs is easy. In Companion to the 19th conference on Object-oriented Programming Systems, Languages, and Applications, pages 132--136. ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Li, C. Cifuentes, and N. Keynes. Practical and effective symbolic analysis for buffer overflow detection. In Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, FSE '10, pages 317--326, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. L. Li, C. Cifuentes, and N. Keynes. Boosting the performance of flow-sensitive points-to analysis using value flow. In Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, FSE '11, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. LLVM/Clang Static Analyzer. http://clang.llvm.org/StaticAnalysis.html. Last accessed: 1 December 2010.Google ScholarGoogle Scholar
  14. B. Scholz, C. Zhang, and C. Cifuentes. User-input dependence analysis via graph reachability. In Proceedings of the Eighth IEEE Working Conference on Source Code Analysis and Manipulation, pages 25--34, 28-29 September 2008.Google ScholarGoogle ScholarCross RefCross Ref
  15. Uno Tool Synopsis. http://spinroot.com/uno/. Last accessed: 26 October 2010.Google ScholarGoogle Scholar
  16. M. Webster. Leveraging static analysis for a multidimensional view of software quality and security: Klocwork's solution. White paper, IDC, Sept. 2005.Google ScholarGoogle Scholar
  17. Y. Xie and A. Aiken. Saturn: A scalable framework for error detection using boolean satisfiability. ACM Transactions on Programming Languages and Systems, 29(3):16, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static deep error checking in large system applications using parfait

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
      September 2011
      548 pages
      ISBN:9781450304436
      DOI:10.1145/2025113

      Copyright © 2011 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 September 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • demonstration

      Acceptance Rates

      Overall Acceptance Rate17of128submissions,13%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader