2015-05-06 2 views
1

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

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

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

+0

Это может быть проще иметь больше места на диске. Вы даже можете попробовать подключить какой-нибудь дешевый USB-ключ (с некоторыми файловыми системами Ext4 на нем) и запустить в нем свою программу. –

+0

@BasileStarynkevitch К сожалению, это не вариант. В этом случае я очень ограничен аппаратными средствами. На самом деле это корень проблемы. – Carlos

ответ

1

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

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

+0

Это выглядит очень многообещающе. Я обязательно посмотрю, спасибо! – Carlos

0

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

Minimal core dump (stack trace + current frame only)

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

и

Linux core dumps are too large!

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

+0

Просто установка предела размера для ядра приводит только к тому, что он усекается, что, насколько мне известно, бесполезно. О другом методе, я не очень разбираюсь в написании обработчиков сигналов, но я попробую, спасибо! – Carlos

+0

Дайте мне знать, как все идет! – timato

Смежные вопросы