В Mac OS X, если я отправлю SIGQUIT в мою программу на C, он завершается, но нет файла дампа ядра.
Вам нужно вручную включить дампы ядра в Mac OS X (как?), или они записываются в другое место вместо рабочего каталога?
Ответ 1
Кажется, они подавлены по умолчанию. Запуск
$ ulimit -c unlimited
Включит дамп ядра для текущего терминала, и он будет помещен в /cores как core.PID. Когда вы открываете новый сеанс, для него снова будет установлено значение по умолчанию.
Ответ 2
В macOS ваши аварийные дампы автоматически обрабатываются Crash Reporter.
Вы можете найти файлы обратной трассировки, выполнив Консоль и перейдя в раздел "Отчеты о диагностике пользователя" (в разделе "Информация о диагностике и использовании"), или вы можете найти их в ~/Library/Logs/DiagnosticReports.
Вы также можете проверить, где создаются дампы, отслеживая файл system.log, например,
tail -f /var/log/system.log | grep crash
Фактические файлы дампа ядра вы можете найти в /cores.
работает, но обязательно запустите его в том же терминале, с которого вы запустите программу, которая сбрасывает ядро. Сначала нужно выполнить команду ulimit.
Ответ 4
по умолчанию скрытые специфические каталоги в mac osx. вы можете включить эту функцию в терминале, а затем дамп ядра должен быть видимым в каталоге/ядрах.