На останньому Ubuntu (12.04 в моєму випадку) можливе друкування "Помилки сегментації (ядро скинуто)", але не створено жодного основного файлу, де ви могли би очікувати такого (наприклад, для локально складеної програми).
Це може статися, якщо у вас розмір основного файлу не перевищує 0 (ви ще цього не зробили ulimit -c unlimited
) - це типово для Ubuntu. Зазвичай це пригнічує "(ядро скинуто)", вказуючи на вашу помилку, але на Ubuntu основні файли передаються через Apport (система звітування про аварії Ubuntu) через /proc/sys/kernel/core_pattern
, і це, здається, викликає оманливе повідомлення.
Якщо Apport виявить, що програма, про яку йдеться, не є такою, про яку слід повідомляти про збої (що ви можете бачити, що відбувається в /var/log/apport.log
), вона повертається назад до імітації поведінки ядра за замовчуванням при введенні основного файлу в cwd (це робиться в сценарії /usr/share/apport/apport
). Сюди входить шанування ulimit, і в цьому випадку вона нічого не робить. Але (я припускаю) що стосується ядра, то було створено основний файл (і покладено на додаток), отже, повідомлення "Несправність сегментації (ядро скинуто)".
В кінцевому рахунку PEBKAC за те, що забув встановити пробну версію, але оманливе повідомлення змусило мене думати, що я ненадовго зійшов з розуму, цікавившись, що їсть мої основні файли.
(Також загалом сторінка керівництва core (5) - man 5 core
- хороша орієнтація на те, де закінчується ваш основний файл, і причини, по яких він може бути записаний.)