タイムトラベルデバッグとは、コンピュータプログラムの実行中に何が起こっているかを理解するために、ソースコードを遡って実行するプロセスです。[ 1 ]通常、デバッグとデバッガは、ユーザーがデバッグプロセスを行う際に役立つツールで、実行中のソフトウェアの実行を一時停止し、プログラムの現在の状態を検査することができます。[ 2 ]その後、ユーザーは時間を進んで、ステートメントにステップインまたはステップオーバーし、順方向に進めることができます。[ 3 ]対話型デバッガには、コードを変更し、更新された情報に基づいてステップフォワードする機能が含まれています。[ 4 ]リバースデバッグツールを使用すると、プログラムの特定のポイントに到達するまでの手順を遡って実行できます。タイムトラベルデバッガはこれらの機能を提供するだけでなく、ユーザーがプログラムと対話して、必要に応じて履歴を変更し、プログラムがどのように応答するかを観察することもできます。[ 5 ]
双方向移動をサポートする特性
時間を前後に移動できる能力を支える特性はいくつか存在する。
- 純粋関数の自己完結性という特性から、純粋関数型プログラミング言語を選択することは有益です。純粋関数は副作用がなく、関数に明示的に与えられた情報のみに依存するため、コードの実行経路が再現可能で信頼性が高く、繰り返し実行可能なものとなります。
- ホットスワップを可能にする言語やデバッガ、つまりコードの実行中にコードを変更する機能、巻き戻しに必要な要件の一部、そして場合によっては実行の書き換えを可能にする機能を提供する。[ 6 ] [ 7 ]
- GNUデバッガ(GDB)に基づくツールは、 C、C++、Go、Fortranなどの互換性のある言語で利用可能であり、リバースデバッグが可能ですが、その作業は対話を著しく遅くします。[ 8 ]
- 可逆計算を目的としたプログラミング言語は、ガベージビットが保持されている場合、逆演算によってプログラムを逆方向に実行することを本質的にサポートしています。これには命令セットのサポートが必要となる場合があります。
タイムトラベルするデバッガー
ステップバック機能を備えたデバッガーの例:
参考文献
- ↑ 「WinDbgプレビュー版でのタイムトラベルデバッグ!」。Windows用デバッグツール。2018年5月8日取得。
- ↑テレス、マシュー;謝、ユアン(2001年4月1日)。デバッグの科学。コリオリス・グループ・ブックス。ISBN 9781576109175。
- ↑ 「リバースデバッグ、タイムトラベルデバッグ」 . undo.io. 2013年1月9日. 2018年5月8日取得.
- ↑ "Node.js を使用したインタラクティブ デバッグ - DZone Web Dev" . dzone.com . 2018-05-08に取得.
- ↑ 「Elm のタイムトラベルデバッガー」。debug.elm -lang.org。2018年 5 月 8 日に取得。
- ↑ 「インタラクティブプログラミング」 . elm-lang.org . 2018年5月8日取得。
- ↑ 「ホットリロードとタイムトラベルデバッグとは?」 . Code Cartoons . 2015-10-21 . 2018-05-08に閲覧.
- ↑ 「タイムトラベルデバッグについて知っておくべき6つのこと」 . undo.io. 2015年1月3日. 2018年5月8日取得.
- ↑ "UDB - C/C++ 用タイムトラベルデバッガー"。
- ↑ "ProvTools/provDebugR" . github.com . 2018-07-31 . 2018-07-31に取得.
- ↑ 「Python 用 PyTrace タイムトラベルデバッガー」。
- ↑ "Wallaby.js 入門: タイムトラベルデバッガー" . wallabyjs.com . 2020-02-27取得.
- ↑ Donut, Fox (2018-04-29). "Redux、MobX、RxJS、Cerebral は不要です" . Fox Donut . 2018-05-24に閲覧。
- ↑ 「RevDeBugについて」。revdebug.com。2020年3月28日取得。
- ↑ "Whyline for Java" . cs.cmu.edu . 2021年1月21日取得.
- ↑ "time travel made easy" . elm-lang.org . 2018年5月8日取得.
- ↑ 「グレッグ・ローによるデバッグ、データの記録と再生、ハイパーオブザーバビリティについての解説」
- ↑ 「グレッグ・ローによるデバッグ、データの記録と再生、ハイパーオブザーバビリティについての解説」
- ↑ DOMARS. "タイムトラベルデバッグ - 概要" . docs.microsoft.com . 2018-05-08取得.
- ↑ 「WinDbg プレビューを入手」。マイクロソフト。
- ↑ 「Windows 用フルシステムタイムトラベル分析」
- ↑ 「Linux 用のフルシステムタイムトラベル分析」。
- ↑ 「Android 用フルシステムタイムトラベル分析」。