У меня есть программа на C ++, которая делает то, что должна, но с указателем должна быть какая-то проблема, поскольку в конце она падает и создает дамп ядра. Моя проблема в том, что я не могу найти файл ядра, поэтому я не могу его отладить.
я пытался
ulimit -c unlimited
ulimit -a
и теперь размер файла установлен неограниченным, но я все еще не могу найти ядро. Я пробовал в каждой папке, написанной здесь, но все же кажется, что файл ядра не создается.
Где я могу найти его?
/var/crash
/var/log/apport.log
, потому что в современных версиях Ubuntu используется Apport, который может мешать дампу ядра неочевидным образом. См. Stackoverflow.com/a/18368068/1772379 для получения дополнительной информации.Ответы:
В 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
файл и прокомментируйте следующую строку:добавив хеш-символ (
#
) в начале строки.Чтобы отключить отчеты о сбоях (вернуться к обычному режиму), удалите символ хеша (такой же, как был).
Вы также можете проверить
core_pattern
, как дампы ядра обрабатываются ядром:Таким образом, даже основные файлы отключены
ulimit
,apport
все равно будет зафиксировать сбой.Смотрите также:
источник
Для этих googlin ': (в моем случае - Ubuntu 16.04 и 18.04 и пользовательское приложение)
/var/crash
все еще пусто, поэтому быстрый способ обработки создания ядра (при условии, что вы, например, используете соответствующую встроенную настройку ulimit ) были
Источники:
источник