gdb调试php轻松找到当前执行的代码-php教程

资源魔 39 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轻松找到以后执行的代码的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 gdb调试

抱歉,评论功能暂时关闭!