Сбой без основной памяти
Прежде всего: у меня включены дампы ядра, и они работают большую часть времени.
Так что одна программа время от времени дает сбой и генерирует дамп ядра. Но иногда происходит сбой без дампа ядра. Что очень расстраивает.
Есть ли такие сбои, которые настолько тяжелы, что не вызывают дамп ядра?
1 ответ
Существует несколько причин, по которым сбой не приводит к дампу ядра, первая из которых, я думаю, не относится к вам:
1) ulimit не был установлен на неограниченное количество: вы должны выдать
ulimit -c unlimited
2) Недостаточно места на диске, или вам не разрешено записывать в каталог, из которого вы выполнили сбойную команду, или вы можете перезаписать существующий файл;
3) Программа требует некоторой программы setxid, в этом случае данные не сбрасываются из соображений безопасности. Дамп может содержать некоторые конфиденциальные данные, которые будут доступны для неавторизованных пользователей. Чтобы обойти это, выпустите, как sudo,
echo 2 >/proc/sys/fs/suid_dumpable
Пожалуйста, обратите внимание на необычный флаг, 2: 1 означает сброс всей защиты, чтобы разрешить отладку системы в целом. 2 более ограничен.
Если у вас есть доступ к коду, вы можете попробовать включить setrlimit внутри кода или сделать вызов prctl (PR_SET_DUMPABLE, 1).