Назад | Перейти на главную страницу

Ошибка сегментации с mod_include

Я использую довольно сложную структуру с несколькими командами ssi-includes, set- и echo.

Первый документ записывает множество команд set, включает другой документ, который затем снова включает третий документ. В последнем включенном документе значения переменных печатаются с помощью команды echo.

Я заметил, что с увеличением числа переменных вероятность возникновения ошибки сегментации возрастает.

Кто-нибудь испытывал нечто подобное? Как мне отладить такую ​​проблему?

Я использую IBM_HTTP_Server / 2.0.47.1-PK65782 Apache / 2.0.47

Вообще говоря, Apache никогда не должен ошибаться при сегментации. Я бы использовал тестовый сервер и включил бы все журналы, а также заглянул бы в процесс с помощью strace, чтобы увидеть, где это происходит с ошибкой.

Если вы уверены, что это mod_include, убедитесь, что он скомпилирован с той же версией apache, которую вы используете, - если он был скомпилирован для другой версии, которая могла бы объяснить ошибки segfaults.

Если это произойдет, вы сможете получить дамп ядра, который поможет понять, что произошло на уровне кода. Обратитесь к документации по вашей операционной системе, чтобы выяснить, как собрать дамп. Получив его, вы можете проверить полное внутреннее состояние процесса во время сбоя, используя свой любимый отладчик.

Strace не очень помогает с segfaults, поскольку он только расскажет вам, что происходит между пользовательским пространством и ядром, в то время как segfault обычно указывает на чисто пользовательскую проблему. Если вы используете Linux, в этом случае более подходят valgrind и ltrace. Но сначала получите обратную трассировку из ядра.