是否可以将调试器附加到正在运行的PHP进程?

时间:2011-09-30 00:26:41

标签: php debugging dump

我有一个PHP脚本,我们每隔几分钟通过一个cron条目运行,并且时不时地(大约每周一次)而不是正常结束,它仍然在运行,占用100%的CPU核心(i' m假设,无限循环)

查看代码并“思考”它,我找不到任何理由发生这种情况,但事实确实如此。到目前为止,当我得到3个或更多我杀了他们,并解决了CPU问题,但我想对此做些什么......

有没有办法转储进程,或者使用调试器附加到进程,以便我可以知道某些任何它正在做什么? (它所使用的PHP线路将会有很大的帮助)。我不介意当我转储或其他什么时,这个过程会死掉。

这是一个PHP脚本,在命令行中运行,在CentOS 5.6机器上,当涉及到* nix时,我是一个很大的菜鸟,所以如果你能指点我的傻瓜教程那么真棒。

谢谢! 丹尼尔

1 个答案:

答案 0 :(得分:3)

我无法将调试器附加到没有专门用PHP调试扩展(例如xdebug)准备的PHP进程。但是,您可以使用更通用的实用程序strace来猜测发生了什么,它可以提供由进程运行的系统调用的跟踪。这只会告诉你正在执行哪些系统调用,但这可能就足够了(取决于上下文)来确定正在发生的事情。