Show simple item record

dc.contributor.authorMadden, Samuel R.
dc.contributor.authorSolar-Lezama, Armando
dc.contributor.authorCheung, Alvin K.
dc.date.accessioned2012-09-27T19:51:15Z
dc.date.available2012-09-27T19:51:15Z
dc.date.issued2011-09
dc.date.submitted2011-01
dc.identifier.isbn978-1-4503-0443-6
dc.identifier.urihttp://hdl.handle.net/1721.1/73450
dc.description.abstractBugs 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. We implemented our technique in a new tool called bbr. In this paper, we show that it can be used to replay bugs in long-running single-threaded programs starting from the middle of an execution. We show that bbr incurs low recording overhead (avg. of 10%) during program execution, which is much less than existing replay schemes. We also show that it can reproduce real bugs from web servers, database systems, and other common utilities.en_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2025113.2025135en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alike 3.0en_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/3.0/en_US
dc.sourceMIT web domainen_US
dc.titlePartial replay of long-running applicationsen_US
dc.typeArticleen_US
dc.identifier.citationAlvin Cheung, Armando Solar-Lezama, and Samuel Madden. 2011. Partial replay of long-running applications. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering (ESEC/FSE '11). ACM, New York, NY, USA, 135-145.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorMadden, Samuel R.
dc.contributor.mitauthorSolar-Lezama, Armando
dc.contributor.mitauthorCheung, Alvin K.
dc.relation.journalProceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering (ESEC/FSE '11)en_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
dspace.orderedauthorsCheung, Alvin; Solar-Lezama, Armando; Madden, Samuelen
dc.identifier.orcidhttps://orcid.org/0000-0002-7470-3265
dc.identifier.orcidhttps://orcid.org/0000-0002-6390-6569
dc.identifier.orcidhttps://orcid.org/0000-0001-7604-8252
mit.licenseOPEN_ACCESS_POLICYen_US
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record