プロセスのコアダンプとはまさに何で、これには何が含まれていますか?

プロセスのコアダンプとはまさに何で、これには何が含まれていますか?

明らかに、GDBはラッパー(gcoreなど)を使用してプロセスのコアダンプを生成できますが、正確に何が含まれているかはわかりません。

したがって、次の質問があります。

  1. プロセスの仮想メモリ全体が含まれていますか?そうでなければどのような部分ですか?書き込み可能なすべての領域、またはスタックだけでなければ(名前からわかるように)、いくつかの基本部分だけでなければ何ですか?

  2. GDBを介してフルプロセスメモリを含むコアファイルを作成できますか?それでは、どうすればいいですか?

  3. プロセスのメモリマップに基づいて、メモリ内のすべての領域を保存して接続して生成された「ダンプ」とコマンドを使用して自動的に生成されたファイルの違いは何ですかgcore

  4. プロセスはRAMのどこかにいくつかのデータを書き込みます。gcoreコマンドを使用して作成されたコアファイルにデータが(常に)アクセスされて保存されることを確認できますか?そうでなければなぜですか?それは何に依存しますか?

ベストアンサー1

コアファイルには、そのプロセスに関連するプロセス仮想メモリのすべての部分(通常はデータとスタックセグメント)が含まれています。実行可能コードを含むテキストセグメントは含まれません。コアファイルをデバッグするには、デバッガにどのプログラムが実行されているかを知らせる必要があります。

コンテンツの詳細な説明は、以下で確認できます。ELFコアファイルの分析

おすすめ記事