6

アプリケーション (C++ on Sol 10 - 32 ビット) がクラッシュし、アプリケーションによって生成されたコアのサイズが 4 GB になりました。アプリケーションがクラッシュしようとしているときに、最大 4 GB (コア ファイルのサイズと同じ) のメモリを使用する可能性があると想定できますか? PS。私のアプリケーションはスタンドアロンであり、他のプロセスに依存していません。

コア ファイルを使用して、アプリケーションが使用した合計メモリを確認する方法はありますか?

4

2 に答える 2

5

マンページから ( http://linux.die.net/man/5/core ):

特定のシグナルのデフォルト アクションは、プロセスを終了させ、コア ダンプ ファイルを生成することです。コア ダンプ ファイルは、終了時のプロセスのメモリ イメージを含むディスク ファイルです。

コードでマルチスレッド環境と共有データが使用されている可能性があります。

また:

カーネル 2.6.23 以降、Linux 固有の /proc/PID/coredump_filter ファイルを使用して、対応するプロセス ID を持つプロセスに対してコア ダンプが実行される場合に、コア ダンプ ファイルに書き込まれるメモリ セグメントを制御できます。

おそらくこれにより、アプリケーションが使用するメモリを知ることができます。

于 2013-02-13T05:05:50.927 に答える