代码改变世界

小技巧找出一个php的cron脚本出问题的代码行

2014-06-18 10:29  轩脉刃  阅读(1500)  评论(0编辑  收藏  举报

这个小技巧虽然很小,但是很有用。

 

我写了一个cron脚本,但是隔一天发现,这个昨天的cron脚本还一直在跑着,没有停下来,一定是里面有个程序堵住了。

但是如果我重新跑又需要很多时间。这个怎么办?

 

现在最需要就是要知道程序停在了那行代码上了。使用gdb:

 

$sudo gdb -p 14973 
(gdb) print (char *)executor_globals.active_op_array->filename 
$1 = 0x9853a34 "/home/xinhailong/test/php/test.php" 
(gdb) print (char *)executor_globals.active_op_array->function_name 
$2 = 0x9854db8 "test1" 
(gdb) print executor_globals->current_execute_data->opline->lineno 
$3 = 4

 

好了,我们就知道了,这个程序停在了/home/xinhailong/test/php/test.php文件的第4行代码中的test1函数内。

于是就能进行后续的分析了。

实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系