Служба создания дампов (core-файлов) аварийного состояния приложений
dumper [-d путь] [-m] [-C] [-P] [-t] [-n] [-p pid] [-s размер[G|M|K]] [-v] [-w] [-z уровень] &
исполняемый_файл.core
автоматически переименовывается в исполняемый_файл.номер.core
, где номер - первый свободный номер, начиная с 1 (т.е. дамп с таким порядковым номером в каталоге сохранения отсутствует).1
(самое быстрое сжатие) до 9
(максимальное сжатие).ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита dumper работает в фоновом режиме и обеспечивает реализацию службы аварийного дампа для всех процессов. Каждый раз при аварийном завершении работы программы на диск записывается дамп ее текущего состояния. Файлу дампа присваивается имя, совпадающее с именем данной программы, с расширением .core
. Например, если именем программы является experiment, дамп записывается в файл experiment.core в домашнем каталоге.
Размер дампов может достигать нескольких десятков или сотен мегабайт (обычно зависит от количества подключаемых библиотек), поэтому следует обеспечить наличие достаточного дискового пространства в целевой файловой системе. |
Опция -p обеспечивает возможность мгновенного получения дампа для отдельного процесса без перевода утилиты dumperв фоновый режим.
Для анализа файла дампа на инструментальной машине можно применять отладчик, например, gdb:
gdb исполняемый_файл core-файл
Пример (дамп pterm.core скопирован с целевой машины в каталог /tmp инструментальной машины):
ntox86-gdb ${KPDA_TARGET}/x86/usr/photon/bin/pterm /tmp/pterm.core
Также для предварительного анализа файла дампа непосредственно на целевой машине можно использовать утилиту coreinfo.
Возможны два варианта завершения работы программы: оно может выполняться в штатном режиме собственными средствами программы с возвращением статуса завершения или принудительно при получении сигнала, обработка которого не предусмотрена. В последнем случае утилита dumper записывает файл дампа для следующих сигналов:
Предусмотрена возможность принудительного выполнения дампа работающей программы с помощью установки одного из вышеупомянутых сигналов, если программа не выполняет маскирование или обработку данного сигнала непосредственно. Например, для выполнения дампа с помощью команды kill с указанием идентификатора процесса (pid):
kill -SIGABRT pid
Для выполнения дампа с помощью утилиты slay с указанием имени процесса:
slay -s SIGABRT имя_процесса
Запуск утилиты dumper в случае записи файлов дампа в каталог по умолчанию:
dumper &
Запуск утилиты dumper в случае сохранения файлов дампа в каталог /home/dumps
:
dumper -d /home/dumps &
/proc
(см. procnto-*), в которую записывается уведомление при аварийном завершении процесса. Обычно утилита dumper работает постоянно. Однако ее работа может быть завершена при возникновении ошибки во время запуска (например, если ее запуск не производился пользователем с учетной записью root) или при получении сигнала.
Базовые подсистемы ЗОСРВ «Нейтрино»
Предыдущий раздел: Сервисы