嗨,我在 php 应用程序中遇到错误,有时会导致事件日志中出现错误,如下所示:
错误应用程序名称:php-cgi.exe,版本:5.3.6.0,时间戳:0x4d81eb28 错误模块名称:php5.dll,版本:5.3.6.0,时间戳:0x4d81ebdc 异常代码:0xc0000005
在其他时候,没有事件记录错误的快速 cgi 错误(可以在本地服务器上浏览):
C:\Program Files (x86)\PHP\v5.3\php-cgi.exe - FastCGI 进程意外退出
在这种情况下,尽管没有错误记录到事件日志中,但以下 2 个条目始终紧跟在故障之后:
侦听器适配器协议“net.pipe”已成功连接到 Windows 进程激活服务。侦听器适配器协议“net.tcp”成功连接到 Windows 进程激活服务。
似乎没有关于应用程序故障的方式和记录方式的逻辑,但它始终是其中一种,显然它们是相关的。
我们的应用程序相对复杂,但运行正常或不正常运行之间的唯一区别是对数据集的更改可能会导致在某些例程中格式化不同的数字。
如果我附加 XDebug (PHP Storm) 并跟踪执行,它会毫无问题地完成。如果我在没有追踪的情况下运行,上述故障场景之一就会变得很明显。
任何人都可以用我提供的信息来解释这种行为,特别是为什么附加调试器并通过应用程序进行跟踪可以防止问题发生?
你将如何调试这个?
谢谢。