kirancodes.me
To Proof Maintenance & Beyond!

Partial replay of long-running applications

Alvin Cheung, Armando Solar-Lezama, Samuel Madden

Abstract

Bugs in deployed software can be extremely difficult to track down. Invasive logging techniques, such as logging all non-deterministic inputs, can incur substantial runtime overheads. This paper shows how symbolic analysis can be used to re-create path equivalent executions for very long running programs such as databases and web servers. The goal is to help developers debug such long-running programs by allowing them to walk through an execution of the last few requests or transactions leading up to an error. The challenge is to provide this functionality without the high runtime overheads associated with traditional replay techniques based on input logging or memory snapshots. Our approach achieves this by recording a small amount of information about program execution, such as the direction of branches taken, and then using symbolic analysis to reconstruct the execution of the last few inputs processed by the application, as well as the state of memory before these inputs were executed.

BibTeX
@inproceedings{Cheung-al:FSE11,
  author    = {Alvin Cheung and
               Armando Solar{-}Lezama and
               Samuel Madden},
  title     = {Partial replay of long-running applications},
  booktitle = {FSE},
  pages     = {135--145},
  publisher = {{ACM}},
  year      = {2011},
}

Related papers