Де шукати основний файл, згенерований при збої програми Linux?


19

Я намагаюся з’ясувати причину збоїв для одного з моїх додатків Linux. Але я не знаю, куди йде ядро.

cat /proc/sys/kernel/core_pattern
core.%e.%p

Будь-яка ідея?

Відповіді:


23

Основний дамп записаний у поточному каталозі процесу під час аварії.

Звичайно, слід активувати основні скиди, за замовчуванням вони зазвичай відключені. Перевірте вихід ulimit -c, якщо це 0, тоді не буде записано жодного основного файлу. Виконати ulimit -c unlimitedдля включення основних скидів; це налаштування кожного процесу, яке успадковується процесами, запущеними цим процесом.

Якщо основний дамп повинен був бути згенерований, але ви не знаєте де, тоді ви можете запустити процес ще раз (якщо він не збиється негайно), а потім перевірити його робочий каталог, зробивши, ls -l /proc/$pid/cwdде $pidзнаходиться ідентифікатор процесу. Це посилання вказуватиме на поточний робочий каталог цього процесу. Швидше за все, основний смітник буде там. Інакше вам потрібно запустити findвсю систему ...


3
Я перевірив ulimit -c його необмежений, але все ще немає нічого в поточному каталозі процесу.
dcds

1
Цілком можливо , що додаток виявлено фатальна помилка саме і перервано, то це не «справжній» краш таких як порушення сегментації або аналогічна, який буде генерувати дамп. Оскільки ви не даєте жодної інформації про програму, це не можливо знати.
Вуртел

1
Це, безумовно, аварія coz, я свідомо роблю нульовий покажчик.
dcds

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.