web-dev-qa-db-ja.com

コアダンプファイルの原因となったプログラムを見つける

最近、プログラム/パッケージの集中的なインストールを行っているため、新しくインストールされたプログラム(または古いプログラム)のどれがホームフォルダーにcoreファイルを表示したのかはわかりません。これはサーバーなので、マシンが不安定になる可能性のある原因を見つけた方がいいです。

22
Desmond Hume

fileプログラムを使用して、それらを識別するだけです。

例えば

# file /var/core/core
/var/core/core:     ELF 64-bit MSB core file SPARCV9 Version 1, from 'crs_stat.bin'
39
Benj

コアファイルでファイルプログラムを使用すると、誤った実行可能ファイルが表示されることがよくあります。これは、受け入れられた回答(Benjの回答のコード)の@Benjで説明されています。

# file /var/core/core
/var/core/core:     ELF 64-bit MSB core file SPARCV9 Version 1, from 'crs_stat.bin'

ただし、「プログラムヘッダーセクションが多すぎる」という問題が発生する場合があります。

core.some-lib.nnnn.nnnn: ELF 64-bit LSB  core file x86-64, version 1 (SYSV), too many program header sections (1850)

この場合、いくつかの代替策を試すことができます。

  • コアファイルの最後のいくつかの文字列を尾行します(このアプリは私にとって約25戻りました):strings core.some-lib.nnnn.nnnn | tail -50
  • Gdb自体を使用します:gdb -c core.some-lib.nnnn.nnnnこれにより、次のようなことがよくわかります:Core was generated by '/usr/local/bin/some-executable'
2
rholmes

core.pidがあるディレクトリに移動して、gdb core core.pidを実行できます。

0
SuperChekkan