У Mac OS X, якщо я надсилаю SIGQUIT до моєї програми C, вона припиняється, але немає основного файлу дампа.
Чи потрібно вручну вмикати основні дампи в Mac OS X (як?), Або вони записуються кудись ще замість робочого каталогу?
У Mac OS X, якщо я надсилаю SIGQUIT до моєї програми C, вона припиняється, але немає основного файлу дампа.
Чи потрібно вручну вмикати основні дампи в Mac OS X (як?), Або вони записуються кудись ще замість робочого каталогу?
Відповіді:
У macOS ваші звалищі аварій автоматично обробляються програмою Crash Reporter .
Ви можете знайти файли зворотного відстеження, запустивши Console і перейшовши до розділу Діагностичні звіти користувачів (у розділі "Діагностична інформація та інформація про використання"), або знайдіть їх у ~/Library/Logs/DiagnosticReports
.
Ви також можете перевірити, де дампи генеруються system.log
файлом моніторингу , наприклад
tail -f /var/log/system.log | grep crash
Фактичні файли дампа ядра, які ви можете знайти в /cores
.
Дивитися також:
Відповідь вище,
ulimit -c необмежений
працює - але не забудьте запустити це в тому самому терміналі, з якого ви будете запускати програму, яка скидає ядро. Спочатку потрібно запустити команду ulimit.
Крім того, каталог / cores повинен існувати, і користувач, який запускає програму, повинен мати на ньому дозволи на запис.
за замовчуванням конкретні каталоги в mac osx приховані. Ви можете увімкнути цю функцію в терміналі, і тоді дамп ядра повинен бути видимим у каталозі / ядрах.
за замовчуванням напишіть com.apple.finder AppleShowAllFiles TRUE
/cores
але шукати в цій папці за допомогою терміналу та кореневого облікового запису.