Главная > apache > Исследование причин ошибки Segmentation fault в Apache

Исследование причин ошибки Segmentation fault в Apache

15 Октябрь 2012

Бывают ситуации, когда процесс апача падает, а в логе остается лишь запись типа «[Thu Oct 11 17:30:03 2012] [notice] child pid 1266 exit signal Segmentation fault (11)«. Чтобы разобраться в причинах, можно использовать файл coredump. Для того, чтобы этот файл создавался при падении апача, нужно сделать следующее:
выполнить команду

echo «/tmp/httpd-core.%p» > /proc/sys/kernel/core_pattern

добавить в скрипт старта апача

ulimit -c unlimited

прописать в конфиг апача (/etc/apache2/apache2.conf)

CoreDumpDirectory /tmp

Установить gdb из backports:

echo «deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free» > /etc/apt/sources.list
apt-get update && apt-get install -t squeeze-backports gdb

Анализировать полученные core-файлы нужно при помощи gdb:

gdb /usr/sbin/apache2 core_файл

Посмотреть список фреймов:

backtrace

Посмотреть фрейм (в данном случае 3-й) и переменные:

frame 3

info local

По мотивам https://bugs.php.net/bugs-generating-backtrace.php и http://habrahabr.ru/company/bitrix/blog/153001/?#habracut

Categories: apache
Комментирование отключено.