私のLinuxアプリケーションの1つがクラッシュする理由を見つけようとしています。しかし、コアはどこに行ったのかわかりません。
cat /proc/sys/kernel/core_pattern
core.%e.%p
どんなアイデアがありますか?
答え1
システム使用量システム通常、コアをダンプするように構成されます。
/var/lib/systemd/coredump/
このcoredumpctl
コマンドを使用してコアダンプを一覧表示できます。また、見ることができますsystemdに移行した後、コアダンプはありません。
答え2
コアダンプは、クラッシュ時にプロセスの現在のディレクトリに書き込まれます。
もちろん、コアダンプを有効にする必要があり、デフォルトでは通常無効になっています。出力を確認してくださいulimit -c
。 0 の場合、コアファイルは記録されません。コアダンプを有効にするには実行してくださいulimit -c unlimited
。これはプロセス固有の設定であり、そのプロセスによって開始されたプロセスによって継承されます。
コアダンプを作成する必要がありますが、場所がわからない場合は、プロセスを再起動し(すぐに競合しない場合)、「プロセスIDはls -l /proc/$pid/cwd
どこにありますか?」を実行して作業ディレクトリを確認できます。$pid
リンクは、プロセスの現在の作業ディレクトリを指します。コアダンプが発生する可能性が高い。それ以外の場合は、find
システム全体で実行する必要があります...