Towards scalable modular checking of user-defined properties

  • Authors:
  • Thomas Ball;Brian Hackett;Shuvendu K. Lahiri;Shaz Qadeer;Julien Vanegue

  • Affiliations:
  • Microsoft;Stanford University;Microsoft;Microsoft;Microsoft

  • Venue:
  • VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Theorem-prover based modular checkers have the potential to perform scalable and precise checking of user-defined properties by combining path-sensitive intraprocedural reasoning with user-defined procedure abstractions. However, such tools have seldom been deployed on large software applications of industrial relevance due to the annotation burden required to provide the procedure abstractions. In this work, we present two case studies of applying a modular checker HAVOC to check properties on large modules in the Microsoft Windows operating system. The first detailed case study describes checking the synchronization protocol of a core Microsoft Windows component with more than 300 thousand lines of code and 1500 procedures. The effort found 45 serious bugs in the component with modest annotation effort and low false alarms; most of these bugs have since been fixed by the developers of the module. The second case study reports preliminary user experience in using the tool for checking security related properties in several Windows components. We describe our experience in using a modular checker to create various property checkers for finding errors in a well-tested applications of this scale, and our design decisions to find them with low false alarms, modest annotation burden and high coverage.