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

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

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

有没有办法转储一个进程,或者通过一个调试器附加到进程上,这样我就可以知道一些东西,关于它在做什么? (只要它在哪一条PHP线上就会有很大的帮助)。 我不介意在转储过程中死亡,或者其他任何事情。

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

谢谢! 丹尼尔


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

链接地址: http://www.djcxy.com/p/9341.html

上一篇: Is it possible to attach a debugger to a running PHP process?

下一篇: Are there any perfomance test results for usage of likely/unlikely hints?