Linuxアプリケーションのクラッシュによって生成されたコアファイルを検索する場所


18

Linuxアプリケーションの1つのクラッシュの理由を見つけようとしています。しかし、私はコアがどこに向かっているのか分かりません。

cat /proc/sys/kernel/core_pattern
core.%e.%p

何か案が?

回答:


22

コアダンプは、クラッシュ時にプロセスの現在のディレクトリに書き込まれます。

もちろん、コアダンプを有効にする必要があります。デフォルトでは、通常は無効になっています。の出力を確認しますulimit -c。0の場合、コアファイルは書き込まれません。実行ulimit -c unlimitedしてコアダンプを有効にします。これはプロセスごとの設定であり、そのプロセスによって開始されたプロセスに継承されます。

コアダンプが生成されるはずであるが、どこがわからない場合は、プロセスを再度開始して(すぐにクラッシュしない場合)、プロセスのプロセスIDがls -l /proc/$pid/cwdどこに$pidあるかを確認して作業ディレクトリを確認できます。そのリンクは、そのプロセスの現在の作業ディレクトリを指します。コアダンプが存在する可能性があります。それ以外の場合findは、システム全体で実行する必要があります...


3
ulimit -cを無制限にチェックしましたが、プロセスの現在のディレクトリには何もありません。
dcd

1
アプリケーションが致命的なエラーを検出して中止した可能性があります。つまり、コアダンプ生成するセグメンテーション違反などの「実際の」クラッシュではありません。アプリケーションに関する情報を提供しないため、知ることはできません。
ウルテル

1
それは間違いなくクラッシュです。私は故意にNULLポインターを実行しています。
dcd

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.