Ответ 1
Linux
Активируйте ваши coredumps:
ulimit -c unlimited
Также проверьте:
$ sysctl kernel.core_pattern
чтобы увидеть, где создаются ваши дампы (%e
будет именем процесса, а %t
будет системным временем).
Вы можете изменить его в /etc/sysctl.conf, а затем перезагрузить с помощью sysctl -p
.
Вы можете проверить это:
sleep 10 &
killall -SIGSEGV sleep
Если дамп ядра успешен, вы увидите "(core dumped)" после индикации ошибки сегментации.
Смотрите также:
- Как создать дамп ядра в Linux, когда процесс получает ошибку сегментации?
- Как автоматически генерировать трассировку стека при сбое моей программы
Ubuntu
Если у вас Ubuntu, ваши дампы создаются Apport в /var/crash
, однако по умолчанию он отключен.
Для более подробной информации, проверьте: Где я могу найти дамп ядра в Ubuntu?
macOS/OS X
В macOS аварийные дампы автоматически создаются Crash Reporter в виде обратных следов. Вы можете найти эти файлы сбоев, запустив Консоль и перейдя в раздел "Отчеты о диагностике пользователя" (в разделе "Информация о диагностике и использовании"), или вы можете найти их в ~/Library/Logs/DiagnosticReports
.
Фактические файлы ядра генерируются в /cores
.
Подробнее: Как создать дамп ядра в Mac OS X?