CoreDumpDirectory не работает над человечностью; получение сегментации дает сбой с php

Я пытаюсь решить отказ сегментации. Это сообщение появляется в моем apache-error.log:

[уведомление] дочерний отказ Сегментации сигнала выхода pid 3979 (11)

Я попытался отключить некоторого апача и php модули, но я все еще получаю ту же ошибку.

Я также попытался поместить это в apache2.conf:

CoreDumpDirectory/tmp/apache2-gdb-dump

и затем chmod 777, показанный www-данные... так, чтобы сервер мог записать.

Я не вижу файлов дампа ядра, чтобы дать мне подсказку на ошибке.

У кого-либо есть идея, почему CoreDumpDirectory не работает над Ubuntu?

ответы: $ ulimit-a базовый размер файла
(блоки,-c) неограниченные данные seg размер
(кбайты,-d) неограниченный приоритет планирования (-e) 0 размеров файла (блоки,-f) неограниченные незаконченные сигналы (-i) 15 863 макс. заблокированных памяти
(кбайты,-l) 32 макс. емкости памяти
(кбайты,-m) неограниченные открытые файлы
(-n) 1 024 размера канала (512 байтов,-p) 8 очередей сообщений POSIX
(байты,-q) 819 200 приоритетов в реальном времени (-r) 0 размеров стека
(кбайты,-s) 8 192 процессорного времени
(секунды,-t) неограниченные макс. пользовательские процессы (-u) 15 863 виртуальных памяти (кбайты,-v) неограниченные блокировки файла
неограниченный (-x)

6
задан arod 29 March 2010 в 02:36
поделиться

2 ответа

Наконец-то я смог увидеть дамп ядра Apache в Ubuntu:

  1. изменить / etc / default / apport
  2. изменить apache2.conf:

      CoreDumpDirectory / tmp / apache2-gdb-dump {{ 1}} 
  3. убедитесь, что Apache может писать в него:

     # chmod 777 / tmp / apache2-gdb-dump 
     
  4. удалить ограничение на размер дампа ядра:

     # ulimit -c unlimited 
     
  5. При необходимости измените шаблон имени дампов ядра:

     # echo 'coredump-% e.% P'> / proc / sys / kernel / core_pattern 
     

Для анализа дампа используйте gdb :

$ gdb apache2 /tmp/apache2-gdb-dump/coredump-x.x

Чтобы увидеть детали трассировки стека в gdb:

gdb> where

Я сделал это и получил дамп ядра. Однако моей проблемы не было. решена путем просмотра дампа ядра; очевидно, это была проблема в моем скрипте php.

Дополнительная информация: http://matrafox.info/apache-child-pid-exit-signal-segmentation-fault.html

11
ответ дан 8 December 2019 в 17:20
поделиться

Дампы ядра отключены в Ubuntu по умолчанию

Попробуйте следующее:

ulimit -c unlimited

«ulimit -a» сообщает вам текущий лимит (0 означает отключено)

2
ответ дан 8 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: