9 コア・ダンプの操作
コア・ダンプには、Oracle Linuxで実行されているユーザー・スペース・アプリケーションとサービスのクラッシュ情報が含まれています。デバッガを使用してオンデマンドで生成することも、プロセスが途中で停止した場合に自動的に生成するようにsystemd-coredump
サービスを構成することもできます。
コア・ダンプには、通常、プロセスID、所有者、終了シグナルおよびスタック・トレースを含むクラッシュ・イベントのログ・サマリーが含まれます。詳細は、systemd-coredump(8)
マニュアル・ページを参照してください。
coredumpctl
コマンドを使用して、システム・ジャーナルに書き込まれたか、ファイルとして保存されたコア・ダンプを確認できます。詳細は、coredumpctl(1)
マニュアル・ページを参照してください。
Systemd、システムを初期化し、Oracle Linuxで実行中のサービスを管理するデーモンについてさらに学習するには、『Oracle Linux 8: コア・システム構成の管理』を参照してください。
コア・ダンプの有効化
コア・ダンプはデフォルトでは有効になっていないため、生成するようにSystemdを構成する必要があります。
-
/etc/systemd/system.conf.d/10-enable-coredumps.conf
構成ファイルを作成し、次の内容を追加します:DumpCore=yes DefaultLimitCORE=infinity
-
systemd
デーモンを再起動して、Oracle Linuxを再起動せずに変更を適用します:sudo systemctl daemon-reload
コア・ダンプの構成
Systemdコア・ダンプで取得されるデータのスコープを調整し、Systemdが格納する場所を定義するには、/etc/systemd/coredump.conf
構成ファイルを変更します。詳細は、coredump.conf(5)
マニュアル・ページを参照してください。
coredumpctl
コマンドを実行する前に、現在のシェル・セッションに適用されるコア・ダンプ・サイズ制限を削除します:
sudo ulimit -c unlimited
ulimit
コマンドの詳細は、ulimit(1)
マニュアル・ページを参照してください。
コア・ダンプの分析
-
coredumpctl
コマンドを使用して、システムで使用可能なコア・ダンプをリストします:coredumpctl list
-
特定のアプリケーション用に格納されているコア・ダンプの詳細を確認するには、オプションとして実行可能ファイルを指定します:
coredumpctl list executable-path
-
システムで障害が発生したプロセス用に格納されているすべてのコア・ダンプを確認するには、かわりにプロセスIDを指定します:
coredumpctl list process-id
コア・ダンプのエクスポート
-
バグ報告のためにコア・ダンプをエクスポートするには、
coredumpctl dump
コマンドの実行時にプロセスIDおよび出力ファイルを指定します:coredumpctl dump process-id -o output-file
-
オプションで、システムに関する追加情報を含むSOSレポートをエクスポートできます。詳細は、「sosコマンドの使用」を参照してください。
-
同じシステムまたは別のシステム上で、
gdb
パッケージをインストールし、coredumpctl debug
コマンドを使用してGNUデバッガでコア・ダンプをステップ実行します:sudo dnf install gdb
coredumpctl debug process-id
coredumpctl
コマンドの詳細は、coredumpctl(1)
マニュアル・ページを参照してください。