Linux を実行している組み込みシステムで大きな C アプリケーションのコア ダンプ ファイルを生成したいと考えています。私が設定した場合
ulimit -c unlimited
100Mb 前後の大きなダンプ ファイルを取得します。私の場合、アプリケーションがクラッシュしてコアが完全に生成されていない場合にシステムが再起動されるため、これは多すぎます。さらに、操作(圧縮など)がより困難です。
メモリ ダンプ全体が必要だとは思いません。クラッシュがあるときにクラッシュがどこにあるかを確認したいだけです。だから、私が推測するスタックとヒープだけが必要です...
私が設定した場合
ulimit -c 1024
どのようなデータが失われますか?
core(5) マンページでは、マスクを設定してダンプするデータを選択する方法を説明しています。
bit 0 Dump anonymous private mappings.
bit 1 Dump anonymous shared mappings.
bit 2 Dump file-backed private mappings.
bit 3 Dump file-backed shared mappings.
bit 4 (since Linux 2.6.24)
Dump ELF headers.
bit 5 (since Linux 2.6.28)
Dump private huge pages.
bit 6 (since Linux 2.6.28)
Dump shared huge pages.
多分そこに最適化がありますか?
ありがとう!