Я нахожусь на CentOS 6, пытаюсь включить дамп ядра для приложения, которое я разрабатываю. Я положил:
ulimit -H -c unlimited >/dev/null
ulimit -S -c unlimited >/dev/null
в моем профиле bash, но дамп ядра все еще не генерировался (в новом терминале).
Я также изменил свой /etc/security/limits.conf, чтобы мягкие ограничения были равны нулю для всех пользователей.
Как установить расположение файлов ядра для вывода? Я хотел указать местоположение и добавить время создания дампа, как часть имени файла?
Ответы:
Чтобы установить расположение дампов ядра в CentOS 6, вы можете отредактировать
/etc/sysctl.conf
. Например, если вы хотите получить дамп памяти в/var/crash
:Где переменные:
Также вы должны добавить
/etc/sysconfig/init
Теперь примените новые изменения:
Но есть предостережение с этим способом. Если параметр ядра kernel.core_pattern всегда сбрасывается и перезаписывается при перезагрузке в следующую конфигурацию, даже если значение указано вручную
/etc/sysctl.conf
:Короче говоря, при
abrtd.service
запускеkernel.core_pattern
автоматически перезаписывается установленной системойabrt-addon-ccpp
. Есть два способа решить эту проблему:Настройка
DumpLocation
параметра в/etc/abrt/abrt.conf
файле конфигурации. Каталог назначения можно указать, установив DumpLocation =/var/crash
в/etc/abrt/abrt.conf
файле конфигурации, иsysctl kernel.core_pattern
отображаемое значение будет таким же, но фактически основной файл будет создан в каталоге под/var/crash
.Также, если у вас включен SELinux, вы должны запустить:
И наконец перезапустите
abrtd.service
:Остановить службу abrtd.
kernel.core_pattern
не будет перезаписан. - (Я никогда не проверял).источник
Чтобы сгенерировать дамп ядра на Busybox, мы можем добавить следующие параметры в скрипт инициализации, который запускает наш исполняемый файл. Таким образом, всякий раз, когда мы инициализируем программное обеспечение и экспортируем переменные окружения, мы можем также скопировать приведенные ниже строки в скрипт и выгрузить ядро в случае, если мы увидим любой сбой.
Чтобы установить расположение дампов ядра в Busybox, вы можете установить путь к файлу ядра, используя файловую систему proc. Например, если вы хотите получить дамп памяти в
/tmp/crash/corefiles
:Где переменные:
Кроме того, вы должны установить размер файла ядра, ниже команда устанавливает размер файла ядра неограниченным
Теперь, чтобы проверить размер основного файла, установленного для каждого потока в процессе, мы можем проверить, используя
Вывод вышеуказанной команды:
Как видно из приведенного выше вывода, максимальный размер файла ядра установлен на неограниченное количество.
Для получения дополнительной информации, пожалуйста, перейдите по этой ссылке. Методы отладки приложений Linux / Основные файлы
источник