うーん...私の先生、私のクラスメートのいくつかと私はデバッガプロジェクトを構築するつもりです。デバッガがインタラクティブであることを願っています。つまり、コードを入力すると、数秒後に結果が表示され、入力コードが変更されたときに結果が変わります。一方、実行中のでは、 を前の行またはブレークポイントにロールバックできます。"タイムトラベルデバッガ"の原則は何ですか?
私の先生の言葉によれば、「タイムトラベルデバッグ」というテクニックは、プログラミング中に行われます。他の人が管理しているプロジェクトをいくつか検索しましたが、コードを理解しづらいことがあります。また、READMEファイルにはこのテクニックについては紹介されていません。
参照: https://github.com/mattgodbolt/compiler-explorer
あなたの先生はDr. Whoのファンでしょうか? "Time Travel Compiling"は標準的な用語ではありません。彼らが作った言葉のようだ。あなたはそれが意味することを彼らに尋ねることができます。 –
デバッガでブレークポイントを設定してからステートメントをstep * backwards *実行すると、ブレークポイントの前の*ポイントでランタイム環境の状態を確認できます。 – Pointy
そして、実際には*コンパイラ*とはまったく関係ありません。それはランタイムシステムのものです。まあ、私は*推測*コンパイラは何らかの監査コンテキストを維持するためのコードを生成することができますが、それは事を行うのは本当に奇妙な方法のようです。 – Pointy