Привет. Я получаю сообщение об ошибке в приложении php, которое иногда приводит к ошибке в журнале событий:
Неправильное имя приложения: php-cgi.exe, версия: 5.3.6.0, отметка времени: 0x4d81eb28
Неверное имя модуля: php5.dll, версия: 5.3.6.0, отметка времени: 0x4d81ebdc
Код исключения: 0xc0000005
И в других случаях ошибка fast-cgi без регистрации событий (можно просматривать на локальном сервере):
C: \ Program Files (x86) \ PHP \ v5.3 \ php-cgi.exe - процесс FastCGI неожиданно завершился
В этом случае, хотя в журнал событий не регистрируется ошибка, сразу после ошибки всегда следуют 2 следующие записи:
Протокол адаптера прослушивателя «net.pipe» успешно подключен к службе активации Windows.
Протокол адаптера прослушивателя «net.tcp» успешно подключен к службе активации процессов Windows.
Казалось бы, нет логики относительно того, каким образом происходит сбой приложения и как оно регистрируется, но оно всегда будет одним или другим, и, очевидно, они связаны.
Наше приложение является относительно сложным, но единственная разница между выполнением «нормально» или «не нормально» - это изменение набора данных, которое может привести к форматированию различных чисел в некоторых подпрограммах.
Если я присоединяю XDebug (PHP Storm) и отслеживаю выполнение, оно завершается без проблем.
Если я бегу без трассировки, становится очевидным один из приведенных выше сценариев сбоев.
Может ли кто-нибудь объяснить это поведение предоставленной мною информацией, особенно почему присоединение отладчика и трассировка через приложение предотвращает проблему?
Как бы вы отладили это?
Спасибо.