プロセスがクラッシュするたびにコア ダンプを作成したいと考えています。現在、私はこのアプローチに従っています:
- gcc/g++ の「-g」を使用して、特別な「デバッグ」バージョンのプログラムをビルドします。
- 「ulimit -c unlimited」を実行
- これで、プログラムがクラッシュするたびにコア ダンプが取得されます。
しかし、次のようにステップ数を最小限に抑えたいと考えています。
- コア ダンプは常に作成する必要があります。「リリース」ビルドであっても。
ulimit -c unlimited
コマンド " " を手動で実行するようユーザーに求めるべきではありません。 - そのコア ダンプのバックトレースは、呼び出しのファイル、関数、行番号を提供できるはずです。これは、人間が読める形式のスタック トレースです。
- 「-g」を使用してプログラムをデバッグ ビルドとしてビルドしたくありません。または、少なくとも、人間が読めるスタック トレースを生成するために必要ではないその他のデバッグ情報を含めるべきではありません。これは、プログラムのリリース ビルドになるためです。
だから私は2つの質問があります:
- プログラムの「リリース」ビルドでコア ダンプを作成する方法は?
- いつも。
ulimit -c unlimited
" "を手動で実行せずに