Где искать файл ядра, сгенерированный в результате сбоя приложения linux?

18

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

cat /proc/sys/kernel/core_pattern
core.%e.%p

Любая идея?

DCD,
источник

Ответы:

22

Дамп ядра записывается в текущий каталог процесса в момент сбоя.

Конечно, дампы ядра должны быть включены, по умолчанию они обычно отключены. Проверьте вывод ulimit -c, если это 0, то файл ядра не будет записан. Запустите ulimit -c unlimitedдля включения дампов ядра; это настройка для процесса, которая наследуется процессами, запущенными этим процессом.

Если дамп ядра должен был быть сгенерирован, но вы не знаете, где, тогда вы можете запустить процесс снова (если он произойдет без сбоя сразу), а затем проверить его рабочий каталог, указав, ls -l /proc/$pid/cwdгде $pidнаходится идентификатор процесса. Эта ссылка будет указывать на текущий рабочий каталог этого процесса. Скорее всего, дамп ядра будет там. В противном случае вам нужно запустить findвсю систему ...

wurtel
источник
3
Я проверил ulimit -c его неограниченный, но все еще нет ничего в текущем каталоге процесса.
2015 г.
1
Возможно, что приложение обнаружило фатальную ошибку и было прервано, т. Е. Это не «реальный» сбой, такой как нарушение сегментации или подобное, что привело бы к дампу ядра. Поскольку вы не предоставляете информацию о приложении, это невозможно узнать.
Wurtel
1
Это определенно крушение, потому что я сознательно делаю нулевой указатель.
DCD ,