уменьшить размер дампа ядра в Linux

Каковы лучшие способы уменьшить размер дампа ядра?

Моя проблема в том, что у меня очень мало места для этой цели на моем Linux Mint. У меня есть около 200 МБ, что недостаточно для моей программы, чтобы создать достойный дамп. Я попытался настроить фильтр coredump, но только дамп анонимных частных сопоставлений внес существенные изменения в размер, но также сделал мой дамп нечитаемым. Я также пытался ограничить размер с помощью ulimit, но единственным результатом было то, что дамп урезался каждый раз.

Мой вопрос заключается в том, как лучше всего контролировать размер дампа ядра?
Есть ли способ сохранить только возможно верхние 10-15 кадров дампа? Кроме того, какой смысл устанавливать ограничение размера с помощью ulimit, если он генерирует только бесполезные файлы ядра?

2

Решение

Рассмотрите возможность использования Breakpad: https://code.google.com/p/google-breakpad/
https://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad :

Breakpad — это библиотека и набор инструментов, которые позволяют распространять
приложение для пользователей с предоставленной компилятором отладочной информацией
удален, записывает сбои в компактных файлах «minidump», отправляет их обратно
ваш сервер, и производить трассировки стека C и C ++ из этих мини-дампов.
Breakpad также может писать мини-дампы по запросу для программ, которые имеют
не разбился.

2

Другие решения

Похоже, здесь есть несколько связанных ответов на StackOverflow:

Минимальный дамп ядра (трассировка стека + только текущий кадр)

Эта ссылка предлагает настроить обработчик сигнала для SIGSEGV и выгрузить ядро ​​по-своему.

а также

Дампы ядра Linux слишком велики!

Эта ссылка предлагает использовать setrlimit для ограничения размера дампа.

0

По вопросам рекламы [email protected]