教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 gdb调试php轻松找到当前执行的代码

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

发布时间:2020-12-20   编辑:jiaochengji.com
教程集为您提供gdb调试php轻松找到当前执行的代码等资源,欢迎您收藏本站,我们将为您提供最新的gdb调试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轻松找到当前执行的代码的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:博客园,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    gdb调试php轻松找到当前执行的代码
    使用GDB命令行调试器调试C/C 程序
    【docker gdb】调试 PHP 源码,看 strval 函数 C 实现
    C/C 程序调试神器GDB命令行调试器使用教程
    C语言中GDB进行程序调试笔记
    PHP中利用Xdebug进行远程错误调试
    【golang源码分析】内存管理和gc原理
    php调试利器之phpdbg安装配置详解
    Go语言gdb调试打印全局变量
    64位的Solaris搭建C程序语言开发环境教程

    [关闭]
    ~ ~