How to accelerate software defect diagnosis with software failure replay
Presented on August 19, 2020
Reproducing a failed process to root cause can be hard - sometimes near impossible. In the 1970s, the idea of reversible debugging as a potential solution to this problem was first discussed in academic papers, and a naive implementation of reversible debugging was added to the GNU “GDB” interactive debugger in 2009. These systems allow developers to debug a ‘recording’ (also known as a ‘trace’) of a program’s execution, stepping forwards and backwards. Full realization of this allows software engineers to rewind to any instruction in the program’s history, and examine any variable’s value (i.e., any register value and any memory location) for any instruction that executed.
Until recently, the high overheads and/or incompleteness of these systems meant they were impractical for recording anything but the simplest of “Hello world”-type programs. Fortunately, today’s hardware and software systems make it feasible to provide a complete recording of a program’s execution. In this webinar, we will illustrate how software failure replay offers unprecedented debugging capabilities with a live demonstration.