Replay debugging: Leveraging record and replay for program debugging

Nima Honarmand, Josep Torrellas

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. However, simply providing support for repeatedly stumbling on the same bug does not help diagnose it. For bug diagnosis, developers typically want to modify the code, e.g., by creating and operating on new variables, or printing state. Unfortunately, this renders the RnR log inconsistent and makes Replay Debugging (i.e., debugging while using an RnR log for replay) dicey at best. This paper presents rdb, the first scheme for replay debugging that guarantees exact replay. rdb relies on two mechanisms. The first one is compiler support to split the instrumented application into two executables: one that is identical to the original program binary, and another that encapsulates all the added debug code. The second mechanism is a runtime infrastructure that replays the application and, without affecting it in any way, invokes the appropriate debug code at the appropriate locations. We describe an implementation of rdb based on LLVM and Pin, and show an example of how rdb's replay debugging helps diagnose a real bug.

Original languageEnglish (US)
Title of host publication41st Annual International Symposium on Computer Architecture, ISCA 2014 - Conference Proceedings
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages445-456
Number of pages12
ISBN (Print)9781479943968
DOIs
StatePublished - 2014
Event2014 ACM/IEEE 41st International Symposium on Computer Architecture, ISCA 2014 - Minneapolis, MN, United States
Duration: Jun 14 2014Jun 18 2014

Publication series

NameProceedings - International Symposium on Computer Architecture
ISSN (Print)1063-6897

Other

Other2014 ACM/IEEE 41st International Symposium on Computer Architecture, ISCA 2014
CountryUnited States
CityMinneapolis, MN
Period6/14/146/18/14

ASJC Scopus subject areas

  • Hardware and Architecture

Fingerprint Dive into the research topics of 'Replay debugging: Leveraging record and replay for program debugging'. Together they form a unique fingerprint.

Cite this