コアダンプファイルのデフォルトの場所を変更して、コアダンプが生成されるたびにそのディレクトリに移動するようにします。また、この場所にクラッシュしたファイルの名前でダンプファイルを保存することはできますか?
はい、そうです。 /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
それが使用されている場合は、オーバーライドする前に理解したいコアファイルを管理するためのかなり広範なスキームが既にあります。
一言で言えば、abrt:
/var/spool/abrt/
abrt-gui
で開始されるGUIがあります/etc/abrt/abrt-action-save-package-data.conf
それを使用する際の一般的な障害の1つは、構成ファイルの次の行を変更することです。
ProcessUnpackaged = no
それをyesに変更して、homebrewプロセスからコアファイルをキャプチャします。そうしないと、パッケージマネージャによってインストールされたプログラムからのみコアファイルがキャプチャされます。
[コアダンプの使用方法に答えるために編集]コアダンプを調べるには、次のようにします。
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
そうするためのより良い方法があるかもしれませんが、gdbは私によく役立ったので、他の方法を探していません。 XXXXXXXをコアダンプファイルを含むフォルダーに置き換えてください。 gdbコマンドはカットアンドペーストの準備ができています。
参照: