博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xdebug工作原理
阅读量:5963 次
发布时间:2019-06-19

本文共 1102 字,大约阅读时间需要 3 分钟。

  hot3.png

对于PHP开发,初来咋到,开发环境的搭建和理解感觉是最操逼的一件事了。不像JAVA,打开一个Eclipse就可以开搞,Php的Debug都要几个插件来配合工作。这些都是死的,好说。但是对于Xdebug的工作原理我一直是耿耿于怀,后来看了一篇神文。

读后,我的总结是,

Xdebug的工作原理可以总结为下面几个步骤,

1)IDE(比如PhpStorm,下文所述的客户端)中已经集成了一个遵循BGDp的Xdebug插件。当要debug的时候,点击一些IDE的某个按钮,启动这个插件。该插件会启动一个9000的端口监听远程服务器发过来的debug信息。

2)浏览器向Httpd服务器发送一个带有XDEBUG_SESSION_START参数的请求,Httpd收到这个请求之后交给后端的PHP进行处理(下面就忽略Httpd,直接把Php叫做Server)。

3)Php看到这个请求是带了XDEBUG_SESSION_START 参数,就告诉Xdebug,“嘿,我要debug喔,你准备一下”。这时,Xdebug这时会向来源ip客户端的9000端口(即客户端,也即是IDE)发送一个debug请求,然后客户端的9000端口响应这个请求,那么debug就开始了。

4)Php知道Xdebug已经准备好了,那么就开始开始一行一行的执行代码,但是每执行一行都会让Xdebug过滤一下。

5)Xdebug开始过滤代码,Xdebug在过滤每一行代码的时候,都会暂停代码的执行,然后向客户端的9000端口发送该行代码的执行情况,等待客户端的决策(是一句代码还是下一个断点待)。

6)相应,客户端(IDE)收到Xdebug发送过来的执行情况,就可以把这些信息展示给开发者看了,包括一些变量的值等。同时向Xdebug发送下一步应该什么。

另外PHP中配置Xdebug插件的配置如下:

zend_extension="/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"

xdebug.remote_enable=1

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.remote_autostart=1

xdebug.auto_trace=1

xdebug.collect_vars=1

不当之处,还请各位指点,QQ1013054837,一切在于交流。

转载于:https://my.oschina.net/atanl/blog/371424

你可能感兴趣的文章
Oracle 查找常见耗性能的语句
查看>>
thinkphp 开启页面的Trace信息
查看>>
mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections
查看>>
android textview字体加下划线
查看>>
springMVC 定时任务
查看>>
Mint8(ubuntu16.04) 搭建微信Web开发工具
查看>>
PostgreSQL数据类型-数据类型简介和布尔类型
查看>>
PostgreSQL数据类型-二进制数据和字符串数据类型与字符串函数
查看>>
shell 基础
查看>>
twisted的LineReceiver的接口定义
查看>>
浅解用PHP实现MVC
查看>>
MySQL常用操作
查看>>
Yxcms网站管理系统安装
查看>>
Nginx错误日志(error_log)配置及信息详解
查看>>
Computer-memory
查看>>
redis 实践笔记(初步)
查看>>
背道而驰or殊途同归?区块链与云计算未来趋势
查看>>
Spring整合JMS(四)——事务管理
查看>>
设计模式学习笔记(七)之模板方法模式(Template Method)
查看>>
我的友情链接
查看>>