Чтобы сгенерировать дамп ядра на Busybox, мы можем добавить следующие параметры в скрипт инициализации, который запускает наш исполняемый файл. Таким образом, всякий раз, когда мы инициализируем программное обеспечение и экспортируем переменные окружения, мы можем также скопировать приведенные ниже строки в скрипт и выгрузить ядро в случае, если мы увидим любой сбой.
Чтобы установить расположение дампов ядра в Busybox, вы можете установить путь к файлу ядра, используя файловую систему proc. Например, если вы хотите получить дамп памяти в /tmp/crash/corefiles
:
mkdir -p /tmp/crash/corefiles
chmod 775 /tmp/crash/corefiles
echo "/tmp/crash/corefiles/%e.%s.core" > /proc/sys/kernel/core_pattern
Где переменные:
% e - это имя файла.
% g - это идентификатор процесса, под которым запущен процесс.
% p - это идентификатор процесса.
% s - это сигнал, вызвавший создание дампа.
% t - это время, когда произошел сброс.
% u - это идентификатор пользователя, под которым выполнялся процесс.
Кроме того, вы должны установить размер файла ядра, ниже команда устанавливает размер файла ядра неограниченным
ulimit -c unlimited
Теперь, чтобы проверить размер основного файла, установленного для каждого потока в процессе, мы можем проверить, используя
cat /proc/<PID>/limits
Вывод вышеуказанной команды:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max open files 10000 10000 files
Max address space unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31868 31868 processes
Max locked memory 65536 65536 bytes
Max file locks unlimited unlimited locks
Max pending signals 31868 31868 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Как видно из приведенного выше вывода, максимальный размер файла ядра установлен на неограниченное количество.
Для получения дополнительной информации, пожалуйста, перейдите по этой ссылке.
Методы отладки приложений Linux / Основные файлы