如何在PHP中调试和防范无限循环?

Rob*_*t K 6 php apache debugging infinite-loop

我最近碰到了一个挑战我的编程能力的问题,这是一个非常偶然的无限循环.我重写了一些代码来干掉它并改变了一个被它调用的确切方法重复调用的函数; 当然是一个基本问题.Apache决定通过崩溃来解决问题,而日志只注明"衍生出来的子进程".问题是我当天从未真正调试过这个问题,它在下午出现,并且今天不得不解决它.

最后,我的解决方案很简单:手动记录逻辑并查看发生了什么.当我有一个由两条独特的线组成的日志文件时,问题立即显现出来,接下来是两条线,每条线重复约两百次.

有什么方法可以保护自己免受无限循环的影响?并且,当它失败(并且会失败)时,追踪它的最快方法是什么?它确实是最有效的日志文件,还是其他什么?

如果它是最佳实践,那么您的答案可能与语言无关,但我宁愿坚持使用PHP特定的技术和代码.

Ben*_*key 15

您可以使用xdebug之类的调试器,并遍历您怀疑包含无限循环的代码.

Xdebug - PHP的调试器和分析器工具

你也可以设置

max_execution_time
Run Code Online (Sandbox Code Playgroud)

限制无限循环在崩溃前燃烧的时间.