我是靠谱客的博主 英勇煎饼,最近开发中收集的这篇文章主要介绍xdebug远程调试原理分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序。当PHP程序被暂停的时候,xdebug可以获取到程序的相关信息,比如变量的值等。xdebug也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行。

 

xdebug配合IDE进行可视化调试的过程(类似于VisualStudio单步调试)被称为“远程调试”,是因为调试时有一个Server(xdebug)和一个Client(IDE),所以在调试的时候,被调试的PHP程序和调试PHP程序的IDE可以不在同一台电脑上。

 

xdebug在进行远程调试的时候扮演一个Server的角色,它会在一个指定的端口(默认是9000)等待IDE的连接。目前有2种通信的协议,GDBDBGp,其中DBGpDBG的取代协议。IDE在执行调试的时候,给xdebug发送需要执行的命令,xdebug接受到命令后执行,然后将执行的情况和获得的PHP程序运行信息返回给IDE。现在很多IDE都实现了与xdebug通信的协议,比如Eclipse PDT

 

Xdebug远程调试有2种方式:

1 req:在PHP程序开始执行的时候,xdebugIDE建立连接。

2 jit:在PHP程序执行到断点处或者遇到Error的时候,xdebug才与IDE建立连接。

 

开启xdebug远程调试需要通过GET, POST或是cookie的方式传入一个XDEBUG_SESSION_START变量,XDEBUG_SESSION_START变量的值代表一个session的名称。通过这种形式,xdebug可以分辨出不同的session。如果要结束一个session可以通过同样的形式传入一个XDEBUG_SESSION_STOP

 

如果使用Eclipse PDT,你可以不用关心这些参数,Eclipse将会为你搞定这些问题。

 

后记:

本文讲述的是xdebug远程调试的原理,关于如何安装,配置,可以参考这篇文章:Eclipse+php插件+Xdebug搭建PHP完美开发/调试环境指南

最后

以上就是英勇煎饼为你收集整理的xdebug远程调试原理分析的全部内容,希望文章能够帮你解决xdebug远程调试原理分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部