Behave or be watched: debugging with behavioral watchpoints

Akshay Kumar, Peter Goodman, Ashvin Goel, Angela Demke Brown

Proceedings of the 9th Workshop on Hot Topics in Dependable Systems (HotDep'13), Farmington, PA, November 2013

 

Abstract

Finding, understanding, and fixing bugs in an operating system is challenging. Dynamic binary translation (DBT) systems provide a powerful facility for building program analysis and debugging tools. However, DBT abstractions are too low-level and provide limited contextual information for instrumentation tools. We introduce behavioral watchpoints, a new software-based watchpoint framework that simplifies the implementation of DBT-based program analysis and debugging tools. Behavioral watchpoints extend the traditional approach of using a DBT system by providing context-specific information at the instruction level and specializing instrumentation to individual data structures. We describe four applications developed using our watchpoint framework: detecting buffer overflows, detecting read-before-write and memory freeing bugs, detecting memory leaks and enforcing fine-grained memory access policies. We implemented behavioral watchpoints using Granary, a new DBT framework. We show that the overheads are reasonable for their intended use in analyzing and debugging kernel modules.

 

Manuscript

Html

 

Bibtex

Bib