TY - GEN
T1 - An efficient and generic reversible debugger using the virtual machine based approach
AU - Koju, Toshihiko
AU - Takada, Shingo
AU - Doi, Norihisa
N1 - Copyright:
Copyright 2011 Elsevier B.V., All rights reserved.
PY - 2005
Y1 - 2005
N2 - The reverse execution of programs is a function where programs are executed backward in time. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel reversible debugger that enables reverse execution of programs written in the C language. Our approach takes the virtual machine based approach. In this approach, the target program is executed on a special virtual machine. Our contribution in this paper is two-fold. First, we propose an approach that can address problems of (1) compatibility and (2) efficiency that exist in previous works. By compatibility, we mean that previous debuggers are not generic, i.e., they support only a special language or special intermediate code. Second, our approach provides two execution modes: the native mode, where the debuggee is directly executed on a real CPU, and the virtual machine mode, where the debuggee is executed on a virtual machine. Currently, our debugger provides four types of trade-off settings (designated by unit and optimization) to consider trade-offs between granularity, accuracy, overhead and memory requirement. The user can choose the appropriate setting flexibly during debugging without finishing and restarting the debuggee.
AB - The reverse execution of programs is a function where programs are executed backward in time. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel reversible debugger that enables reverse execution of programs written in the C language. Our approach takes the virtual machine based approach. In this approach, the target program is executed on a special virtual machine. Our contribution in this paper is two-fold. First, we propose an approach that can address problems of (1) compatibility and (2) efficiency that exist in previous works. By compatibility, we mean that previous debuggers are not generic, i.e., they support only a special language or special intermediate code. Second, our approach provides two execution modes: the native mode, where the debuggee is directly executed on a real CPU, and the virtual machine mode, where the debuggee is executed on a virtual machine. Currently, our debugger provides four types of trade-off settings (designated by unit and optimization) to consider trade-offs between granularity, accuracy, overhead and memory requirement. The user can choose the appropriate setting flexibly during debugging without finishing and restarting the debuggee.
KW - Debugger
KW - Reverse Execution
KW - Virtual Machine
UR - http://www.scopus.com/inward/record.url?scp=32044433953&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=32044433953&partnerID=8YFLogxK
U2 - 10.1145/1064979.1064992
DO - 10.1145/1064979.1064992
M3 - Conference contribution
AN - SCOPUS:32044433953
SN - 1595930477
SN - 9781595930477
T3 - Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05
SP - 79
EP - 88
BT - Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05
T2 - First ACM/USENIX International Conference on Virual Execution Environments, VEE 05
Y2 - 11 June 2005 through 12 June 2005
ER -