こんにちは私は現在Ubuntuでc ++をプログラミングしていますが、セグメンテーション違反でコアダンプを生成できません。 「セグメンテーション違反」が発生するだけで、ulimit -c unlimitedを設定した(コアダンプ)ではありません。
以前はコアダンプを生成することができましたが、前に、コアダンプが発生しなくなりました。多分これは、このバグのためにapportを無効にしたためです "申し訳ありませんが、Ubuntu 12.04で内部エラーが発生しました。" 。
だから私はulimit -c unlimitedの後にコアダンプを有効にするために他にどのようなステップがあるのだろうかと思っていましたか?
コアダンプはカーネルで有効にする必要があります
/proc/sys/kernel/core_pattern
恒久的に設定することができます
sysctl kernel.core_pattern=$coredump_name
例えば.
sysctl kernel.core_pattern=core
sysctl kernel.core_pattern=/var/crash/%E.%p.%t.%s
%E
は、クラッシュしたプログラムの完全パス名を示します(/
は!
に置き換えられます)%p
は、クラッシュしたプログラムのプロセスIDを示します%t
はエポックのタイムスタンプを示します%s
は終了シグナル番号を示します詳細はman 5 core
にあります。