zoukankan      html  css  js  c++  java
  • x-debug配置简述

    一 x-debug 是什么?
    在配置之前,先解决一个问题,x-debug 是什么?我也不查标准答案了,就说说个人理解。
    x-debug是一个PHP调试工具,帮助开发者在IDE里面进行代码的断点调试,效果如下:

    1.直观显示变量的值,用以辅助判断赋值对不对;
    2.追踪代码的执行流程,可以追踪在哪个流程出错了;
    3....

    二 断点打在哪里?
    在没有使用x-debug 的年代,我们喜欢使用echo/var_dump/var_export 来输出调试。而现在使用了x-debug,那么,断点就打在我们想 echo的地方。

    三 运行原理
    我们需要关注两个地方:客户端IDE、服务端x-debug。客户端就是我们的IDE,打断点的地方,没什么好讲的。服务端以php扩展的形式安装运行。
    - 在客户端,我们的IDE会监听一个端口9000(题外话:监听端口就是等待访问的端口)。
    - 在服务端,我们会对x-debug进行配置,告诉它客户端在哪里(客户端的IP与监听端口)。
    当我们尝试使用x-debug进行调试,服务器接收到请求之后,x-debug就会去连接客户端IDE的监听端口,连接成功之后,双方就开始通信,进行代码调试。步奏分解如下:
    1.IDE监听一个端口,9000;
    2.用户发起请求,比如刷新浏览器;
    3.xdebug主动去连接IDE的9000端口,连接成功后,调试开始。

    四 服务端配置
    1)首先要安装x-debug
    其实就是一个php扩展,该怎么装就怎么装呗。给个例子吧:
    yum -y install php-pecl-xdebug
    2)配置x-debug
    在哪里配?传统一点就在php.ini 后面追加x-debug相关的配置,规范一点就是在 php.d/ 路径下面有一个x-debug相关的配置文件,没有就自己建咯。给个例子:

     1 ; Enable xdebug extension module
     2 zend_extension=xdebug.so
     3 
     4 ; see http://xdebug.org/docs/all_settings
     5 
     6 ; 是否允许远程终端
     7 xdebug.remote_enable=on
     8 
     9 ; 选择协议
    10 xdebug.remote_handler=dbgp
    11 
    12 ; 调试终端主机地址
    13 ;xdebug.remote_host=192.168.40.23
    14 
    15 ; 不配ip也行,如下设置之后xdebug可以从http请求的头部获取ip地址
    16 xdebug.remote_connect_back=on
    17 
    18 ; 调试终端主机端口
    19 xdebug.remote_port=9000
    20 
    21 ; 这里是调试器的关键字,对应到调试的IDE上面,需不需要就看你的IDE的配置了
    22 ;xdebug.idekey=netbeans-xdebug
    23 
    24 ; 是否开启远程调试自动启动
    25 xdebug.remote_autostart= On
    26 
    27 ; 是否开启自动跟踪
    28 xdebug.auto_trace= On

    3)检验,查看phpinfo()

    五 客户端配置
    1)PHPStore
    PHPStore 的配置及其简单,只需要把右上角的话筒点开就行了,如下

    然后,给代码打上断点

    接着刷新浏览器,如下

    点击 [Accept] 完了之后就可以调试了,另外你也可以自定义配置,如下:

    点击图示位置。

    2)netbean
    点击【工具>选项>PHP>调试】打开如下窗口

    netbean 的配置也很简单,不过它的调试却异常麻烦。我们来走一遍
    第一步,如图:

    第二步,如图:

    第三步,如图:

    另外,还要注意IDE右下角的状态栏

    注意:使用NetBeans进行x-debug 调试,需要在服务器配置xdebug.idekey=netbeans-xdebug

    3)eclipse
    点击 【Window > Preferences > PHP > Debug > Debuggers】

    eclipse的x-debug 配置很简单,调试也很简单。
    ①只要把 Access remote session 设置为 any,则所有请求都会触发x-debug 调试;
    ②Access remote session设置为 off,则不启用x-debug 调试;
    ③Access remote session设置为localhost,则跟NetBeans的效果一样,需要点击调试按钮触发调试;
    ④Access remote session设置为为prompt跟设置为any差不多,只是每次启动前都要求确认。

    把 Access remote session 设置为 any,在浏览器输入正确的网址,调试效果如下:


    小结:
    1.PHPstore/NetBeans/eclipse,三个IDE 的x-debug使用差别,大概在于Access remote session的处理。
    2.我猜测,PHPstore右上角的话筒对应Access remote session的两个状态(off/any);NetBeans就只有localhost状态;eclipse则可以显式设置四种不同的状态。
    3.不要三个IDE一起调试,会窜端口的。
    4.PHPstore不需要配置,调试也很简单,推荐;NetBeans配置简单,调试麻烦,不推荐;eclipse配置简单,调试也简单,推荐。
    5.上面所言,皆为吾之猜测与试验。不保证对错。

  • 相关阅读:
    算法时间复杂度、空间复杂度(大O表示法)
    六、Java“毒丸”使用示例,实现取消任务
    四、获取IP地址工具包
    SEDA架构程序实现
    二十一、curator recipes之TreeCache
    二十、curator recipes之NodeCache
    十九、curator recipes之PathChildrenCache
    十八、curator recipes之DistributedDelayQueue
    Mysql学习笔记【一、环境安装&配置】
    Go学习笔记【一、概述】
  • 原文地址:https://www.cnblogs.com/lihuobao/p/5333542.html
Copyright © 2011-2022 走看看