Identifying the Root Causes of Memory Bugs Using Corrupted Memory Location Suppression
The authors present a general approach for automatically isolating the root causes of memory-related bugs in software. Their approach is based on the observation that most memory bugs involve uses of corrupted memory locations. By iteratively suppressing (nullifying) the effects of these corrupted memory locations during program execution, their approach gradually isolates the root cause of a memory bug. Their approach can work for common memory bugs such as buffer overflows, uninitialized reads, and double frees. However, their approach is particularly effective in finding root causes for memory bugs in which memory corruption propagates during execution until an observable failure such as a program crash occurs.