ゲームでエラー発生時にリプレイデータを保存

ゲームのリプレイデータはテストやデバッグ時の状況再現にも役に立つ。
なので予期しないエラーが発生したときは自動的にリプレイデータをファイルに保存しておくといいんじゃないかと思った。
Ruby ならこんな感じ

begin
rescue
  f = open("replay.dat", "w")
  f.print(Marshal.dump(@replayData))
  f.close()
  exit
end

C なら SIGSEGV や SIGFPE をキャッチするとか。
で、コマンドラインオプションでリプレイデータファイルを指定してリプレイモードで起動できるようにしておく。
普通リプレイデータに含めるのは乱数の種とキー入力だろうけど、前回起動時のセーブデータも保存しておけば完全に状況再現できるのでは。
ああ、ネットワークが絡むとさらに厄介だな。