TY - JOUR
T1 - A Reversible Debugger Using Dynamic Translation.
AU - Koju, Toshihiko
AU - Takada, Shingo
AU - Doi, Norihisa
PY - 2005
Y1 - 2005
N2 - The reverse execution of programs is a function where programs are executed backward in time. In other words, it is a function that “undoes” effects of previously executed instructions, lines, and procedures. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel approach for the reverse execution of programs written in the C language. Our approach is based on a method called dynamic translation. In dynamic translation, programs are translated and executed on virtual machines concurrently. Our approach has the following advantages compared with existing approaches: (1) our approach enables reverse execution of arbitrary code as long as there is sufficient memory, (2) our approach is very flexible, and (3) our approach allows fast execution. This is because all code to be executed are translated by a flexible virtual machine, and almost all execution is carried out by native machine code generated by the translation.
AB - The reverse execution of programs is a function where programs are executed backward in time. In other words, it is a function that “undoes” effects of previously executed instructions, lines, and procedures. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel approach for the reverse execution of programs written in the C language. Our approach is based on a method called dynamic translation. In dynamic translation, programs are translated and executed on virtual machines concurrently. Our approach has the following advantages compared with existing approaches: (1) our approach enables reverse execution of arbitrary code as long as there is sufficient memory, (2) our approach is very flexible, and (3) our approach allows fast execution. This is because all code to be executed are translated by a flexible virtual machine, and almost all execution is carried out by native machine code generated by the translation.
UR - http://www.scopus.com/inward/record.url?scp=85024744497&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85024744497&partnerID=8YFLogxK
U2 - 10.11309/jssst.22.3_186
DO - 10.11309/jssst.22.3_186
M3 - Article
AN - SCOPUS:85024744497
SN - 0289-6540
VL - 22
SP - 186
EP - 193
JO - Computer Software
JF - Computer Software
IS - 3
ER -