旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

gdb调试php轻松找到当前实行的代码【php教程】

作者:搜搜PHP网发布时间:2019-12-01分类:PHP教程浏览:70


导读:假定线上有一段php剧本,倏忽在某天出问题了,不处置惩罚然则历程没有退出。这类状况多是非常休眠或者是有段死循环代码,然则我们怎样定位呢,我们这个时刻最想晓得的应该是这个剧本在此刻在...
假定线上有一段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网别的相干文章!

标签:gdb调试php