![いくつかのコマンドを実行した後、bash は不明な理由で「Segmentation Fault (core dumped)」と出力します。](https://rvso.com/image/76451/%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%9F%E5%BE%8C%E3%80%81bash%20%E3%81%AF%E4%B8%8D%E6%98%8E%E3%81%AA%E7%90%86%E7%94%B1%E3%81%A7%E3%80%8CSegmentation%20Fault%20(core%20dumped)%E3%80%8D%E3%81%A8%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
最近、Arch Linux のビルドで奇妙な問題に気づきました。シェルから特定のプログラムを起動すると、「セグメンテーション エラー (コア ダンプ)」というメッセージが表示されます。
例えば、私がシャッターを閉じるか、Chrome を起動するか、Sublime Text を起動するか、Emacs を閉じます。
私の知る限り、セグメント違反はプログラムに影響を与えていませんが、継続的に発生し、少し煩わしくなってきました。
何が原因なのか全く分かりませんし、しばらく検索してもそれに関する情報は見つかりませんでした。
私のシェルは bash で、ターミナルは urxvt です。
答え1
この種の問題には2つの一般的な原因があります(つまり、複数の無関係なプログラムに影響を与える)
- メモリに障害があります。メムテスターまたはメムテスト86メモリをテストします。不良な DIMM を交換します。マザーボードがサポートしている場合は、ECC RAM を購入します。通常は 10 ~ 30% 高いだけです。
memtest86
一部のディストリビューション (例: Debian) では、パッケージのインストール時に実行する grub エントリを追加するように便利に設定されていることに注意してくださいmemtest86
。 memtester
再起動せずに実行できます。
- 影響を受けるすべてのプログラムに共通する不良ライブラリ。最近アップグレードしましたか? 推測ですが、言及したすべてのプログラムが gnome/gtk ライブラリに依存しているか、またはそれらを使用するようにコンパイルできるため、gnome/gtk ライブラリを疑って調べ始めることをお勧めします。他の潜在的な容疑者には libc6 が含まれます。 を使用して、
ldd
各プログラムが使用するライブラリを正確に調べ、それらを比較して共通のライブラリを見つけることができます。