xdebug断点调试原理
2018-06-22 05:00:05来源:未知 阅读 ()
通过Xdebug进行远程调试时,PHPSTORM等IDE会监听Xdebug设置的调试ip和端口(php.ini中配置)
[xdebug] ; Xdebug zend_extension=php_xdebug.dll xdebug.remote_enable = On xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 9000 xdebug.idekey="PHPSTORM"
下面这张截图是phpstorm开启listening for php debug connections
后:
并在当前调试的URL后面加上了XDEBUG_SESSION_START
的请求参数,参数值为IDE标识,这个标识相当于用户名,用以区别不同的IDE(chrome或者firefox中的xdebug扩展(firefox中我用的是The easiest Xdebug) 是通过设置cookie的方式),然后向PHP服务器发送请求,例如:http://www.example.com?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13986635740313。
而通过xdebug firefox插件则可以看到请求时会带一个cookie:
[默认配置下,Xdebug只能为一个客户端提供远程调试服务,如果想要为多个客户端提供远程调试服务,则需要设置xdebug.remote_connect_back = 1
。]
当客户端和Xdebug建立DBGP(phpstorm中配置debug时需要在file->settings->Languages & Frameworks->PHP->Debug->DBGp Proxy
)连接后,客户端就可以为我们提供远程调试服务了,远程调试会话开启流程如下图所示:
如果我们想要终止远程调试,客户端同样会在当前调试的URL后面加上XDEBUG_SESSION_STOP
或XDEBUG_SESSION_STOP_NO_EXEC
(XDEBUG_SESSION_STOP_NO_EXEC表示脚本尚未执行)参数,然后向PHP服务器发送请求,链接例如:
http://localhost/index.php?XDEBUG_SESSION_STOP_NO_EXEC=ECLIPSE_DBGP&KEY=13986635740313
Xdebug模块检测到URL中的该参数时,则会终止掉与指定客户端的连接与会话。
参考文章:http://www.softown.cn/post/117.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- WHOOPS PHP调试库的使用 2020-01-16
- PHP添加Xdebug扩展的方法 2019-10-08
- 在ZendStudio 中开启PHP 5.2.x 环境的远程调试功能 2019-06-20
- Mac+Apache+PHP 安装 Xdebug 方法 2019-02-25
- PHP实现openSug.js参数调试 2019-01-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash