Ahead of time static analysis for automatic generation of debugging interfaces to the Linux kernel

Tegawendé F. Bissyandé,Laurent Réveillère,Julia L. Lawall,Gilles Muller
DOI: https://doi.org/10.1007/s10515-014-0152-4
IF: 1.677
2014-05-22
Automated Software Engineering
Abstract:The Linux kernel does not export a stable, well-defined kernel interface, complicating the development of kernel-level services, such as device drivers and file systems. While there does exist a set of functions that are exported to external modules, this set of functions frequently changes, and the functions have implicit, ill-documented preconditions. No specific debugging support is provided. We present Diagnosys, an approach to automatically constructing a debugging interface for the Linux kernel. First, a designated kernel maintainer uses Diagnosys to identify constraints on the use of the exported functions. Based on this information, developers of kernel services can then use Diagnosys to generate a debugging interface specialized to their code. When a service including this interface is tested, it records information about potential problems. This information is preserved following a kernel crash or hang. Our experiments show that the generated debugging interface provides useful log information and incurs a low performance penalty.
computer science, software engineering
What problem does this paper attempt to address?