web-dev-qa-db-ja.com

ubuntu 16.04LTSのコアダンプはどこにありますか?

私はそれがするはずのことをするC++プログラムを持っていますが、最後にクラッシュしてコアダンプを作成するため、ポインターには何らかの問題がなければなりません。私の問題は、コアファイルが見つからないため、デバッグできないことです。

私が試してみました

ulimit -c unlimited
ulimit -a

そして今、ファイルの次元は無制限に設定されていますが、それでもコアが見つかりません。 here と書かれたすべてのフォルダーで試しましたが、それでもコアファイルは作成されていないようです。

どこで見つけることができますか?

10
mattiav27

Ubuntuでは、コアダンプは Apport によって処理され、/var/crash/に配置できます。ただし、安定リリースではデフォルトで無効になっています。

Apportを有効にするには、Sudo systemctl enable apport.serviceまたはSudo service apport startを実行します。


無効にするには、Sudo systemctl disable apport.serviceまたはSudo service apport stopを実行して、通常のコアダンプ方法に戻ります。参照: Apportを有効または無効にする方法

永続的に無効にするには、/etc/apport/crashdb.confファイルを編集し、次の行をコメント化します。

'problem_types': ['Bug', 'Package'],

行の先頭にハッシュ記号(#)を追加します。

クラッシュレポートを無効にするには(通常の状態に戻す)、ハッシュシンボルを削除します(以前と同じ)。


core_pattern、カーネルによるコアダンプの処理方法も確認できます。

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

そのため、コアファイルもulimitによって無効にされますが、apportは引き続きクラッシュをキャプチャします。

こちらもご覧ください:

9
kenorb