Linuxアプリケーションのクラッシュの原因を調べようとしています。しかし、コアがどこに行くのか私にはわかりません。
cat /proc/sys/kernel/core_pattern
core.%e.%p
何か案が?
コアダンプは、クラッシュ時にプロセスの現在のディレクトリに書き込まれます。
もちろん、コアダンプを有効にする必要があります。デフォルトでは、通常は無効になっています。 ulimit -c
の出力を確認します。0の場合、コアファイルは書き込まれません。 ulimit -c unlimited
を実行してコアダンプを有効にします。これは、そのプロセスによって開始されたプロセスによって継承されるプロセスごとの設定です。
コアダンプが生成されたはずであるのに場所がわからない場合は、プロセスを再度開始し(すぐにクラッシュしない場合)、ls -l /proc/$pid/cwd
where $pid
を実行して作業ディレクトリを確認します。プロセスのプロセスIDです。そのリンクは、そのプロセスの現在の作業ディレクトリを指します。コアダンプが存在する可能性があります。そうでない場合は、システム全体でfind
を実行する必要があります...
systemdを使用するシステムは通常、コアをダンプするように設定されています
/var/lib/systemd/coredump/
coredumpctl
コマンドを使用して、コアダンプを一覧表示できます。参照 no-more-coredumps-after-migrating-to-systemd