9 コア・ダンプの操作

コア・ダンプには、Oracle Linuxで実行されているユーザー・スペース・アプリケーションとサービスのクラッシュ情報が含まれています。デバッガを使用してオンデマンドで生成することも、プロセスが途中で停止した場合に自動的に生成するようにsystemd-coredumpサービスを構成することもできます。

コア・ダンプには、通常、プロセスID、所有者、終了シグナルおよびスタック・トレースを含むクラッシュ・イベントのログ・サマリーが含まれます。詳細は、systemd-coredump(8)マニュアル・ページを参照してください。

coredumpctlコマンドを使用して、システム・ジャーナルに書き込まれたか、ファイルとして保存されたコア・ダンプを確認できます。詳細は、coredumpctl(1)マニュアル・ページを参照してください。

Systemd、システムを初期化し、Oracle Linuxで実行中のサービスを管理するデーモンについてさらに学習するには、『Oracle Linux 8: コア・システム構成の管理』を参照してください。

コア・ダンプの有効化

コア・ダンプはデフォルトでは有効になっていないため、生成するようにSystemdを構成する必要があります。

  1. /etc/systemd/system.conf.d/10-enable-coredumps.conf構成ファイルを作成し、次の内容を追加します:

    DumpCore=yes
    DefaultLimitCORE=infinity
  2. 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

コア・ダンプのエクスポート

  1. バグ報告のためにコア・ダンプをエクスポートするには、coredumpctl dumpコマンドの実行時にプロセスIDおよび出力ファイルを指定します:

    coredumpctl dump process-id -o output-file
  2. オプションで、システムに関する追加情報を含むSOSレポートをエクスポートできます。詳細は、「sosコマンドの使用」を参照してください。

  3. 同じシステムまたは別のシステム上で、gdbパッケージをインストールし、coredumpctl debugコマンドを使用してGNUデバッガでコア・ダンプをステップ実行します:

    sudo dnf install gdb
    coredumpctl debug process-id

coredumpctlコマンドの詳細は、coredumpctl(1)マニュアル・ページを参照してください。