A Reversible Debugger Using Dynamic Translation.

Toshihiko Koju, Shingo Takada, Norihisa Doi

Research output: Contribution to journalArticle

Abstract

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
Volume22
Issue number3
DOIs
Publication statusPublished - 2005

Fingerprint

Data storage equipment
Virtual machine

ASJC Scopus subject areas

  • Software

Cite this

A Reversible Debugger Using Dynamic Translation. / Koju, Toshihiko; Takada, Shingo; Doi, Norihisa.

In: Computer Software, Vol. 22, No. 3, 2005, p. 186-193.

Research output: Contribution to journalArticle

Koju, Toshihiko ; Takada, Shingo ; Doi, Norihisa. / A Reversible Debugger Using Dynamic Translation. In: Computer Software. 2005 ; Vol. 22, No. 3. pp. 186-193.
@article{02bdfaf50154414ebe74d24d34bb17cb,
title = "A Reversible Debugger Using Dynamic Translation.",
abstract = "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.",
author = "Toshihiko Koju and Shingo Takada and Norihisa Doi",
year = "2005",
doi = "10.11309/jssst.22.3_186",
language = "English",
volume = "22",
pages = "186--193",
journal = "Computer Software",
issn = "0289-6540",
publisher = "Japan Society for Software Science and Technology",
number = "3",

}

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

VL - 22

SP - 186

EP - 193

JO - Computer Software

JF - Computer Software

SN - 0289-6540

IS - 3

ER -