The SLAM project: debugging system software via static analysis

  • Authors:
  • Thomas Ball;Sriram K. Rajamani

  • Affiliations:
  • Microsoft Research;Microsoft Research

  • Venue:
  • POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 2002

Quantified Score

Hi-index 0.03

Visualization

Abstract

The goal of the SLAM project is to check whether or not a program obeys "API usage rules" that specify what it means to be a good client of an API. The SLAM toolkit statically analyzes a C program to determine whether or not it violates given usage rules. The toolkit has two unique aspects: it does not require the programmer to annotate the source program (invariants are inferred); it minimizes noise (false error messages) through a process known as "counterexample-driven refinement". SLAM exploits and extends results from program analysis, model checking and automated deduction. We have successfully applied the SLAM toolkit to Windows XP device drivers, to both validate behavior and find defects in their usage of kernel APIs.