A Reversible Debugger Using Dynamic Translation.

Toshihiko Koju, Shingo Takada, Norihisa Doi

Research output: Contribution to journalArticlepeer-review


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.

Original languageEnglish
Pages (from-to)186-193
Number of pages8
JournalComputer Software
Issue number3
Publication statusPublished - 2005

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'A Reversible Debugger Using Dynamic Translation.'. Together they form a unique fingerprint.

Cite this