WYSIWIB: A declarative approach to finding API protocols and bugs in Linux code
- 1 June 2009
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Eliminating OS bugs is essential to ensuring the reliability of infrastructures ranging from embedded systems to servers. Several tools based on static analysis have been proposed for finding bugs in OS code. They have, however, emphasized scalability over usability, making it difficult to focus the tools on specific kinds of bugs and to relate the results to patterns in the source code. We propose a declarative approach to bug finding in Linux OS code using a control-flow based program search engine. Our approach is WYSIWIB (What You See Is Where It Bugs), since the programmer expresses specifications for bug finding using a syntax close to that of ordinary C code. The key advantage of our approach is that search specifications can be easily tailored, to eliminate false positives or catch more bugs. We present three case studies that have allowed us to find hundreds of potential bugs.Keywords
This publication has 6 references indexed in Scilit:
- Documenting and automating collateral evolutions in linux device driversPublished by Association for Computing Machinery (ACM) ,2008
- Path-Sensitive Inference of Function Precedence ProtocolsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2007
- Thorough static analysis of device driversPublished by Association for Computing Machinery (ACM) ,2006
- Understanding collateral evolution in Linux device driversPublished by Association for Computing Machinery (ACM) ,2006
- Mining Temporal Specifications for Error DetectionPublished by Springer Nature ,2005
- Bugs as deviant behaviorPublished by Association for Computing Machinery (ACM) ,2001