Подтвердить что ты не робот

Как создать файл дампа ядра в Ubuntu

Я хотел бы знать, как создать файл дампа ядра в Ubuntu. Я использую Ubuntu 8.04.1 и gcc-компилятор 4.2.3. Я написал простую C-программу для создания дампа ядра. Я скомпилировал программу, как в gcc -g badpointer.c. Когда я запускаю программу, она дает ошибку сегментации, но не создается дамп ядра. Какие дополнительные вещи мне нужно сделать для создания файла дампа ядра?

4b9b3361

Ответ 1

Linux

Активируйте ваши coredumps:

ulimit -c unlimited

Также проверьте:

$ sysctl kernel.core_pattern

чтобы увидеть, где создаются ваши дампы (%e будет именем процесса, а %t будет системным временем).

Вы можете изменить его в /etc/sysctl.conf, а затем перезагрузить с помощью sysctl -p.

Вы можете проверить это:

sleep 10 &
killall -SIGSEGV sleep

Если дамп ядра успешен, вы увидите "(core dumped)" после индикации ошибки сегментации.

Смотрите также:


Ubuntu

Если у вас Ubuntu, ваши дампы создаются Apport в /var/crash, однако по умолчанию он отключен.

Для более подробной информации, проверьте: Где я могу найти дамп ядра в Ubuntu?


macOS/OS X

В macOS аварийные дампы автоматически создаются Crash Reporter в виде обратных следов. Вы можете найти эти файлы сбоев, запустив Консоль и перейдя в раздел "Отчеты о диагностике пользователя" (в разделе "Информация о диагностике и использовании"), или вы можете найти их в ~/Library/Logs/DiagnosticReports.

Фактические файлы ядра генерируются в /cores.

Подробнее: Как создать дамп ядра в Mac OS X?

Ответ 2

Проверьте вывод ulimit -c, если он выдает 0, вот почему у вас нет ядра.

Используйте

ulimit -c unlimited

чтобы разрешить создание ядра (возможно, заменить unlimited пределом реального размера более безопасным).

Ответ 3

Установите максимальный размер дампа ядра с помощью ulimit -c SIZE.