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


14

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

私が試してみました

ulimit -c unlimited
ulimit -a

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

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


現在のディレクトリ、または/var/crash
waltinator

4
ほとんどの場合@waltinatorに当てはまりますが、/var/log/apport.log最新のUbuntuバージョンはApportを使用するため、を確認する必要がある場合があります。詳細については、stackoverflow.com / a / 18368068/1772379を参照してください。
ベンジョンソン

回答:


12

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でも、クラッシュがキャプチャされます。

こちらもご覧ください:


3

それらのgooglin 'の場合:(私の場合-Ubuntu 16.04および18.04とカスタムアプリ)/var/crashはまだ空だったので、コア作成をすばやく処理する方法(たとえば、関連するulimitビルトイン設定を使用している場合)は

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

そして

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


ソース:


シンプルでわかりやすく、うまくいきました。
テカン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.