Получение core dump в Linux
Проверка создания core dump
Проверим создаются ли файлы core dump вообще (некоторые программы, например httpd, могут требовать индивидуальных настроек). Для этого создадим программу на С++ с ошибкой деления на ноль, что соответственно:) приводит к ошибке и в нашем случае создание файла core dump
- test.c
int a (int *p) { int y = *p; return y; } int main (void) { int *p = 0; /* null pointer */ return a (p); }
Компилируем
$ gcc -o test test.c
Запускаем
$ ./test Segmentation fault (core dumped) $ file /tmp/core-test-11-0-0-22601-1414579274 /tmp/core-test-11-0-0-22601-1414579274: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './test'
Как включить core dump?
Настройка производилась для CentOS теперь CentOS Stream 6.5 (Final) x86_64 с ядром OpenVZ 2.6.32-042stab093.5.
- Добавим в /etc/sysctl.conf
kernel.core_pattern = /tmp/core-%e-%s-%u-%g-%p-%t fs.suid_dumpable = 2 kernel.core_uses_pid = 1
%e is the file name %g is GID processes running under %p is the process PID %s is a signal caused the dump % is a time of occurrence %u is a UID process runs
применим эти параметры без перезагрузки компьютера
# sysctl -p
- Отредактировать лимит для размера core файла (по умолчанию 0, то есть отключены, файл создаваться не будет). Редактируем файл с лимитами и указываем максимальный размер core файла, в нашем случае неограниченный размер(unlimited).
# nano /etc/security/limits.conf # Disable core file #* soft core 0 # Enable core file * soft core unlimited
Что бы не перегружать компьютер для применения файла limits.conf, можно применить их из командной строки:
# ulimit -c unlimited
cat /proc/`pgrep process_name`/limits
- Описанного набора действий бывает не всегда достаточно. В частности, если SysV скрипт использует функцию daemon(), описанную в /etc/rc.d/init.d/functions, то заданный ранее явно лимит переопределяется следующей строкой
corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}"
дополнительно определяем
# nano /etc/sysconfig/init DAEMON_COREFILE_LIMIT=unlimited

Friendhosting - Разумные цены на хостинг
VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!
friendhosting.net
Антидетект браузер Dolphin{anty} бесплатно до 10 профилей
Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!
skyeng.ru