2012-03-01 8 views
6

私は実行中のCプログラムのスナップショットをコアファイルの形で生成するためにtoolを持っています。コアファイルを復旧して実行中のプログラムに戻すことは可能ですか?

実行可能プログラムとしてこれらのコアファイルを復活させることは可能でしょうか?もしそうなら、どうしたらいいですか?すでにこれを行うライブラリはありますか?

私は* nixシステムで作業しています。

+0

私は同じようなことをしたPerlの "コンパイラ"があったことを思い出しています。 – ninjalj

答えて

2

はい、それは理論上です。

スナップショットがプログラムのメモリ全体の完全なダンプの場合、スタックとヒープはPCとともに、このダンプをメモリに戻して実行のプロセスを再度開始することができます。しかし、私が考えるカーネルの土地でこれをしなければなりません。

0

GDBあなたのためにそれを行います。私はクラッシュしてコアを作成するプログラムにこのプログラムを使用しましたが、これは理論的にも変わらないはずです。

+0

あなたはgdbでそれを行う方法を説明できますか? gdb( 'gdb executable_file core_file')でコアファイルを調べることができますが、これはコアファイルを実行可能ファイルに変換するのと同じではありません – horseyguy

+0

ああ...私はあなたの最終目標を誤解したと思います。だから、目標は、人々が実行可能ファイルを以前と同じように再開できるようにすることです。もしそうなら、私はおそらく別の行動措置を講じるつもりで、私が気にしていたデータをファイルにシリアライズし、実行ファイルが開始されたときにそのファイルをチェックします。 – Hoons

関連する問題