Основная причина возникновения дампа ядра - получить доступ к адресу памяти вне пределов досягаемости (память, не принадлежащая вашей программе). Операционная система прерывает программу с прерыванием, называемым SegFault или BusError, в зависимости от того, как программа пыталась получить доступ к недопустимому адресу памяти. Затем программа будет принудительно закрыта ядром. Если ядро настроено на создание дампа ядра (дамп памяти и стек программы), то он будет сохранен на диск. Как указано в другом ответе, вы можете загрузить ядро-дамп в GDB или другой отладчик и показать, что программа делала в момент его срыва. Это может или не может дать вам проблему. Обычно для опытного программиста сложно использовать эти инструменты, поэтому имейте в виду. Если вы хотите, чтобы попытаться использовать GDB, попробуйте следующее:
$ GDB/путь/к/сбой/программа/двоичный/путь/к/ядро
(GDB) BT
'Ы' будет отображать «обратные трассы», иначе известные как StackTraces, и могут быть полезны программисту для отслеживания ошибки.
Если вы в состоянии воспроизвести ошибку, возможно, вам удастся отправить подробный отчет об ошибке создателю данной программы. Даже я, как старший разработчик программного обеспечения, время от времени берет этот маршрут. :-)
Может быть, вы можете найти основной файл. –
Вы знаете, как это сделать? – Arnaud
Зависит от системы. Может быть «find/-name» core «-ls' работает. –