Каковы лучшие способы уменьшить размер дампа ядра?
Моя проблема в том, что у меня очень мало места для этой цели на моем Linux Mint. У меня есть около 200 МБ, что недостаточно для моей программы, чтобы создать достойный дамп. Я попытался настроить фильтр coredump, но только дамп анонимных частных сопоставлений внес существенные изменения в размер, но также сделал мой дамп нечитаемым. Я также пытался ограничить размер с помощью ulimit, но единственным результатом было то, что дамп урезался каждый раз.
Мой вопрос заключается в том, как лучше всего контролировать размер дампа ядра?
Есть ли способ сохранить только возможно верхние 10-15 кадров дампа? Кроме того, какой смысл устанавливать ограничение размера с помощью ulimit, если он генерирует только бесполезные файлы ядра?
Рассмотрите возможность использования Breakpad: https://code.google.com/p/google-breakpad/
https://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad :
Breakpad — это библиотека и набор инструментов, которые позволяют распространять
приложение для пользователей с предоставленной компилятором отладочной информацией
удален, записывает сбои в компактных файлах «minidump», отправляет их обратно
ваш сервер, и производить трассировки стека C и C ++ из этих мини-дампов.
Breakpad также может писать мини-дампы по запросу для программ, которые имеют
не разбился.
Похоже, здесь есть несколько связанных ответов на StackOverflow:
Минимальный дамп ядра (трассировка стека + только текущий кадр)
Эта ссылка предлагает настроить обработчик сигнала для SIGSEGV и выгрузить ядро по-своему.
а также
Дампы ядра Linux слишком велики!
Эта ссылка предлагает использовать setrlimit для ограничения размера дампа.