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

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

内容导读

收集整理的这篇技术教程文章主要介绍了gdb调试php轻松找到当前执行的代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含775字,纯文字阅读大概需要2分钟

内容图文

假设线上有一段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/.gdbinitzbacktrace

这个时候就知道了是在test.php的11行 sleep函数导致的进程sleep。

相关教程:PHP视频教程

以上就是gdb调试php轻松找到当前执行的代码的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的gdb调试php轻松找到当前执行的代码全部内容,希望文章能够帮你解决gdb调试php轻松找到当前执行的代码所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com