Debugging Backwards in Time - Google Tech Talk 紹介シリーズ ( 2 )
「 もう一度、あの時に戻ってやり直せたら・・・ 」
人間誰しも昔に戻ってやり直したいと思う瞬間があります・・・と、そこまで大げさではないにしても、日々プログラムを書いているとタイムマシンが欲しくなる時があります。
例えば、原因不明の segmentation fault を追いつめるためにデバッガとにらめっこしている時。往々にして原因は segmentation fault のはるか以前に(ひっそりと)起こっているものです。そんな時、私はいつも「あぁ時間を遡ることが出来たなら・・・」と嘆きながら、山のようにブレイクポイントを設定していたりします。
しかし、技術の進歩というのは素晴らしいもので、タイムマシンは無理にしても、私のささやかな願いがかなう日は近いようです。
カウボーイハットが素敵な Tufts 大学の Bil Lewis 先生がデモするのは、ただの Java デバッガ・・・に見えますが、これが実は凄い。オブジェクトに変更が起きた全ての時点を記録しているので、何かおかしなことが起きた場合に 「 この変数の値が最後に変わったところまで遡ってみよう 」 などということが、いとも簡単に出来てしまいます。素晴らしい!これさえあれば、しばらくはドラえもんがいなくても大丈夫です。
さらに圧巻なのは、講演中に運悪くデバッガ自身が落ちてしまったとき。「 あぁ、じゃあ、デバッガをデバッグしてみようか 」 とか言いながら、その場でデバッグを開始してしまいます。実際、あまりに良く出来ていているので、一瞬ヤラせなのではないかと思ってしまったほどです ( 笑 )。
人生を過去に遡るのはまだ無理のようですが、プログラミングの世界ではそう遠くない未来に簡単にできるようになるかもしれない...そう思うとデバッグが楽しくなりませんか?