Если получаем segmentation fault…
Сначала, нужно включить создание дампов, допустим, в директорию /var/log/dups

mkdir -p /var/log/dumps
chmod -R 1777 /var/log/dumps
echo 'kernel.core_pattern = /var/log/dumps/core.%e.%p' >> /etc/sysctl.conf
sysctl -p

Теперь, разрешить системе создавать дампы:

ulimit -c unlimited

Посмотреть текущее состояние можно так:

ulimit -a|grep core

Два варианта ответа этой команды:

core file size          (blocks, -c) 0 #выключено
core file size          (blocks, -c) unlimited #Включено

Теперь, непосредственно анализ дампа:

gdb /usr/bin/проблемное_приложение
core /var/log/dumps/созданный_им_дамп

Для Apache еще потребуется, в зависимости от ОС:

echo 'CoreDumpDirectory /var/log/dumps' > /etc/httpd/conf.d/coredumps.conf

или

echo 'CoreDumpDirectory /var/log/dumps' > /etc/apache2/conf.d/coredumps.conf

Опубликовано 21 октября 2014 - информация могла устареть.

Ответить