Dynamic Translationを利用した可逆デバッガ A Reversible Debugger Using Dynamic Translation

Access this Article

Author(s)

    • 土居 範久 Doi Norihisa
    • 慶應義塾大学大学院理工学研究科|中央大学理工学部 Graduate School of Science and Technology, Keio University|Faculty of Science and Engineering, Chuo University

Abstract

プログラムの逆実行とは,実行中のプログラムの状態を,現時点よりも過去の時点での状態に巻戻す機能のことである.このような機能を提供するデバッガのことを,可逆デバッガと呼ぶ.本研究ではDynamic Translationを利用し,C言語で記述されたプログラムの逆実行を実現する手法を提案する.Dynamic Translationとは,プログラムを仮想マシン上で,コード変換を行いながら実行する手法である.これは従来の手法と比べて,次のような利点がある:(1)高速な実行が可能である,(2)メモリが許す限り,任意のコードを逆実行することができる,(3)柔軟性が非常に高い.以上のデバッガを実装し,有効性を確認した.

Reverse execution of programs is a function that allows programs to execute backward in time. A reversible debugger is a debugger that provides such functionality. In this paper, we propose an approach that enables reverse execution of programs written in the C language. Our approach is based on a method called dynamic translation. In dynamic translation, programs are executed while being translated on a virtual machine. Our approach has the following advantages compared with existing approaches: (1) our approach allows faster execution, (2) our approach enables reverse execution of arbitrary code as long as there are sufficient memory, and (3) our approach is very flexible. We implemented a prototype reversible debugger and evaluated its efficiency.

Journal

  • Conference Proceedings of Japan Society for Software Science and Technology

    Conference Proceedings of Japan Society for Software Science and Technology 21(0), 26-26, 2004

    Japan Society for Software Science and Technology

Codes

Page Top