2011-09-30 41 views
7

我有一個PHP腳本,我們每隔幾分鐘通過cron條目運行一次,並且每隔一段時間(大約每週一次)而不是正常結束,它仍然運行,佔用100%的CPU核心假設,無限循環)是否可以將調試器附加到正在運行的PHP進程?

看着代碼和「思考」它,我找不到任何理由發生,但它確實如此。到目前爲止,當我得到3個或更多的那些我殺了他們,並且解決了CPU問題,但是我想對此做點什麼...

有什麼辦法來轉儲進程或附加給它一個調試器,以便我可以知道東西什麼它在做什麼? (只要它在哪一條PHP線上就會有很大的幫助)。我不介意在轉儲過程中死亡,或者其他任何事情。

這是一個PHP腳本,從命令行運行在CentOS 5.6機器上,當涉及到* nix時,我是一個很棒的noob,所以如果你能指點我一些傻瓜教程,太棒了。

謝謝! Daniel

+1

是的它是:http://dirac.org/linux/gdb/06-Debugging_A_Running_Process.php(但這可能不是你正在尋找的調試器)。 – hakre

回答

3

我沒有辦法知道要將調試器附加到沒有專門用PHP調試擴展(例如xdebug)準備的PHP進程。但是,使用更通用的實用程序strace可以猜測正在進行的操作,它可以提供進程運行的系統調用的跟蹤信息。這隻會告訴你正在執行什麼系統調用,但這可能已經足夠(取決於上下文)以確定發生了什麼。

相關問題