类别:PHP教程 / 日期:2019-12-01 / 浏览:179 / 评论:0

假定线上有一段php剧本,倏忽在某天出问题了,不处置惩罚然则历程没有退出。这类状况多是非常休眠或者是有段死循环代码,然则我们怎样定位呢,我们这个时刻最想晓得的应该是这个剧本在此刻在做什么吧。这个是gdb+zbacktrace就有用了。

起首随意写一个测试剧本test.php,内里就写一个sleep函数,换成死循环也能够。

<?phpfunction Mecho($i){ echo $i.PHP_EOL;
}$i = 20;while($i>0){if($i%2==0){
  Mecho($i);
}sleep(100000);$i--;
}

zbacktrace下载php源码包内里就有,当前我的环境是新装的,当前的php版本是php7.2.9

直接cli实行test.php

php test.php

然后找到当前php历程

  

然后用gdb调试

gdb -p 56571

调试

source /usr/local/src/php-7.2.9/.gdbinit
zbacktrace

这个时刻就晓得了是在test.php的11行 sleep函数致使的历程sleep。

相干教程:PHP视频教程

以上就是gdb调试php轻松找到当前实行的代码的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章