Где я нахожу дамп ядра в человечности 16.04LTS?

У меня есть программа C++, которая делает то, что она, как предполагается, делает, но должна быть некоторая проблема с указателем, так как она отказывает в конце и создает дамп ядра. Моя проблема состоит в том, что я не могу найти базовый файл, таким образом, я не могу отладить его.

Я попробовал

ulimit -c unlimited
ulimit -a

и теперь размер файла установлен на неограниченный, но тем не менее я не могу найти ядро. Я попробовал в каждой папке, записанной здесь, но тем не менее кажется, что никакой базовый файл не создается.

Где я могу найти его?

12
задан 19 October 2017 в 09:36

2 ответа

В 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 все еще получит катастрофический отказ.

См. также:

11
ответ дан 23 November 2019 в 03:40

Для тех, которые гуглят': (в моем случае - 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)


Источники:
1
ответ дан 23 November 2019 в 03:40

Другие вопросы по тегам:

Похожие вопросы: