TY - GEN
T1 - DrDebug
T2 - 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
AU - Wang, Yan
AU - Patil, Harish
AU - Pereira, Cristiano
AU - Lueck, Gregory
AU - Gupta, Rajiv
AU - Neamtiu, Iulian
PY - 2014
Y1 - 2014
N2 - We present a collection of tools, DrDebug, that greatly advances the state-of-the-art of cyclic, interactive debugging of multi-threaded programs based upon the record and replay paradigm. The features of DrDebug significantly increase the efficiency of debugging by tailoring the scope of replay to a buggy execution region or an execution slice of a buggy region. In addition to supporting traditional debugger commands, DrDebug provides commands for recording, replaying, and dynamic slicing with several novel features. First, upon a user's request, a highly precise dynamic slice is computed that can then be browsed by the user by navigating the dynamic dependence graph with the assistance of our graphical user interface. Second, a dynamic slice of interest to the user can be used to compute an execution slice whose replay can then be carried out. Due to narrow scope, the replay can be performed efficiently as execution of code segments that do not belong to the execution slice is skipped. We also provide the capability of allowing the user to step from the execution of one statement in the slice to the next while examining the values of variables. To the best of our knowledge, this capability cannot be found in any other slicing tool. We have also integrated DrDebug with the Maple tool that exposes bugs and records buggy executions for replay. Our experiments demonstrate DrDebug's practicality.
AB - We present a collection of tools, DrDebug, that greatly advances the state-of-the-art of cyclic, interactive debugging of multi-threaded programs based upon the record and replay paradigm. The features of DrDebug significantly increase the efficiency of debugging by tailoring the scope of replay to a buggy execution region or an execution slice of a buggy region. In addition to supporting traditional debugger commands, DrDebug provides commands for recording, replaying, and dynamic slicing with several novel features. First, upon a user's request, a highly precise dynamic slice is computed that can then be browsed by the user by navigating the dynamic dependence graph with the assistance of our graphical user interface. Second, a dynamic slice of interest to the user can be used to compute an execution slice whose replay can then be carried out. Due to narrow scope, the replay can be performed efficiently as execution of code segments that do not belong to the execution slice is skipped. We also provide the capability of allowing the user to step from the execution of one statement in the slice to the next while examining the values of variables. To the best of our knowledge, this capability cannot be found in any other slicing tool. We have also integrated DrDebug with the Maple tool that exposes bugs and records buggy executions for replay. Our experiments demonstrate DrDebug's practicality.
KW - Deterministic replay
KW - Execution slice
UR - http://www.scopus.com/inward/record.url?scp=84900616640&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84900616640&partnerID=8YFLogxK
U2 - 10.1145/2544137.2544152
DO - 10.1145/2544137.2544152
M3 - Conference contribution
AN - SCOPUS:84900616640
SN - 9781450326704
T3 - Proceedings of the 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
SP - 98
EP - 108
BT - Proceedings of the 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
PB - Association for Computing Machinery
Y2 - 15 February 2014 through 19 February 2014
ER -