An efficient and generic reversible debugger using the virtual machine based approach

Toshihiko Koju, Shingo Takada, Norihisa Doi

Research output: Chapter in Book/Report/Conference proceedingConference contribution

15 Citations (Scopus)

Abstract

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.

Original languageEnglish
Title of host publicationProceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05
Pages79-88
Number of pages10
DOIs
Publication statusPublished - 2005
EventFirst ACM/USENIX International Conference on Virual Execution Environments, VEE 05 - Chicago, IL, United States
Duration: 2005 Jun 112005 Jun 12

Other

OtherFirst ACM/USENIX International Conference on Virual Execution Environments, VEE 05
CountryUnited States
CityChicago, IL
Period05/6/1105/6/12

Fingerprint

Program processors
Data storage equipment
Virtual machine

Keywords

  • Debugger
  • Reverse Execution
  • Virtual Machine

ASJC Scopus subject areas

  • Engineering(all)

Cite this

Koju, T., Takada, S., & Doi, N. (2005). An efficient and generic reversible debugger using the virtual machine based approach. In Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05 (pp. 79-88) https://doi.org/10.1145/1064979.1064992

An efficient and generic reversible debugger using the virtual machine based approach. / Koju, Toshihiko; Takada, Shingo; Doi, Norihisa.

Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05. 2005. p. 79-88.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Koju, T, Takada, S & Doi, N 2005, An efficient and generic reversible debugger using the virtual machine based approach. in Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05. pp. 79-88, First ACM/USENIX International Conference on Virual Execution Environments, VEE 05, Chicago, IL, United States, 05/6/11. https://doi.org/10.1145/1064979.1064992
Koju T, Takada S, Doi N. An efficient and generic reversible debugger using the virtual machine based approach. In Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05. 2005. p. 79-88 https://doi.org/10.1145/1064979.1064992
Koju, Toshihiko ; Takada, Shingo ; Doi, Norihisa. / An efficient and generic reversible debugger using the virtual machine based approach. Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05. 2005. pp. 79-88
@inproceedings{3fdbb4a624814d68921e5d841394cbd9,
title = "An efficient and generic reversible debugger using the virtual machine based approach",
abstract = "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.",
keywords = "Debugger, Reverse Execution, Virtual Machine",
author = "Toshihiko Koju and Shingo Takada and Norihisa Doi",
year = "2005",
doi = "10.1145/1064979.1064992",
language = "English",
isbn = "1595930477",
pages = "79--88",
booktitle = "Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05",

}

TY - GEN

T1 - An efficient and generic reversible debugger using the virtual machine based approach

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. 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

SP - 79

EP - 88

BT - Proceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05

ER -