kirancodes.me
To Proof Maintenance & Beyond!

Don't panic: reverse debugging of kernel drivers

Pavel Dovgalyuk, Denis Dmitriev, Vladimir Makarov

Abstract

Debugging of device drivers' failures is a very tough task because of kernel panics, blue screens of death, hardware volatility, long periods of time required to expose the bug, perturbation of the drivers by the debugger, and non-determinism of multi-threaded environment. This paper shows how reverse debugging reduces the influence of these factors to the process of drivers debugging. We present reverse debugger as a practical tool, which was tested for i386, x86-64, and ARM platforms, for Windows and Linux guest operating systems. We show that our tool incurs very low overhead (about 10%), which allows using it for debugging of the time sensitive applications. The paper also presents the case study which demonstrates reverse debugging of the USB kernel drivers for Linux.

BibTeX
@inproceedings{Dovgalyuk-al:FSE15,
  author    = {Pavel Dovgalyuk and
               Denis Dmitriev and
               Vladimir Makarov},
  title     = {Don't panic: reverse debugging of kernel drivers},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {938--941},
  publisher = {{ACM}},
  year      = {2015},
}

Related papers