web-dev-qa-db-ja.com

Apportを無効にした後、コアダンプを生成できません

こんにちは私は現在Ubuntuでc ++をプログラミングしていますが、セグメンテーション違反でコアダンプを生成できません。 「セグメンテーション違反」が発生するだけで、ulimit -c unlimitedを設定した(コアダンプ)ではありません。

以前はコアダンプを生成することができましたが、前に、コアダンプが発生しなくなりました。多分これは、このバグのためにapportを無効にしたためです "申し訳ありませんが、Ubuntu 12.04で内部エラーが発生しました。"

だから私はulimit -c unlimitedの後にコアダンプを有効にするために他にどのようなステップがあるのだろうかと思っていましたか?

1
dskioldebrand

コアダンプはカーネルで有効にする必要があります

/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にあります。

5
Martin