コア ダンプ ファイルのデフォルトの場所を変更して、コア ダンプが生成されるたびにそのディレクトリに移動するようにしたいのですが、この場所にクラッシュしたファイルの名前でダンプ ファイルを保存することは可能ですか?
2 に答える
はい、そうです。/proc/sys/kernel/core_pattern
コアファイルの生成に使用されるパス名を定義するように変更できます。詳細については、man core
例:
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # `tee' instead of > so that
# opening happens in the
# elevated process
将来のすべてのコア ダンプが生成され/tmp
、名前が付けられます。core_[program].[pid]
受け入れられた回答の指示に従う前に、の内容を確認して/proc/sys/kernel/core_pattern
、Redhat abrt システムが使用されているかどうかを確認することをお勧めします。
-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
それが使用されている場合は、コア ファイルを管理するためのかなり広範なスキームが既に存在し、それを上書きする前に理解しておく必要があります。
一言で言えば、要約:
- ここにコアファイルを置きます:
/var/spool/abrt/
- コマンドで開始されるGUIがあります
abrt-gui
- 失敗したプロセスに関する追加情報でコアファイルを補強します。
- 次のファイルで構成されます。
/etc/abrt/abrt-action-save-package-data.conf
それを使用する際の一般的な障害の 1 つは、構成ファイルの次の行を変更することです。
ProcessUnpackaged = no
自作プロセスからコア ファイルをキャプチャするには、これを yes に変更します。そうしないと、パッケージ マネージャーによってインストールされたプログラムからのみコア ファイルがキャプチャされます。
[コアダンプの使い方に答える編集] コアダンプを調べるには、次のようにします。
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
そのためのより良い方法があるかもしれませんが、gdb は私によく役立ったので、他の方法は探していません。XXXXXXX をコアダンプ ファイルを含むフォルダーに置き換えるだけです。gdb コマンドは、カット アンド ペーストの準備ができています。
参考文献: