Я использую довольно сложную структуру с несколькими командами 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. Но сначала получите обратную трассировку из ядра.