zoukankan      html  css  js  c++  java
  • NetBeans IDE 配置XDebug

    配置部署:

    zend_extension="D:wampser3.0wamp64wamp64inphpphp5.6.19zend_extphp_xdebug-2.4.0-5.6-vc11-x86_64.dll"

    [xdebug]

    xdebug.remote_enable = on
    xdebug.profiler_enable = off
    xdebug.profiler_enable_trigger = off
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "D:wampser3.0 mp"
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000  //9000被占用,我用9005端口
    ; Port number must match debugger port number in NetBeans IDE Tools > Options > PHP
    xdebug.remote_handler=dbgp      
    xdebug.idekey=netbeans-xdebug  

    5、配置IDE,主要配置为:IDE中的菜单->工具->选项

     

     

    还有就是对应项目的配置:右击对应的项目,打开项目的属性:

     

     

    6、以上配置好了,就可以测试下效果了。

    Xdebug远程调试原理:

    这里是官方的原理解释:https://xdebug.org/docs/remote

    英文好的可以访问官网。这里说明下我的理解,以加深记忆。

     

     

    1、xdebug整个工作过程是你本地IDEPHP扩展xdebug共同协作的一个过程;

    2、在通常情况下是不会触发xdebug的远程调试的。触发方式为:

    I、在命令行的环境下,通过配置环境变量来触发;

    export XDEBUG_CONFIG="idekey=session_name"php myscript.php

     

    II、通过http请求的getpost带对应参数来触发

    XDEBUG_SESSION_START=session_name

    这里主要是当php接收到请求的时候xdebug判断请求参数带有xdebug_session,则会在cookie上设置idekey=session_name

    III、也可以通过xdebug对应的浏览器插件,帮忙直接在cookie中设置idekey=session_name

    3、这里假设我们的调试为http调试,IDE发起调试的时候,通过浏览器访问请求,例如:http://localhost/test.php?XDEBUG_SESSION_START=session_name,并监听9000端口;

    4、Xdebug截获到该请求,将设置cookie中idekey=session_name,主动连接remote_ip:remote_port,连接到IDE,跟IDE对话;

    对话内容主要为ide告诉xdebug,在哪些文件设置了断点,在执行第一行代码时候要停止,进行下一步操作,进入函数,跳出函数等信息

    Xdebug则在程序运行到断点的时候告诉IDE当前在哪里停止和各变量的值等等信息。

  • 相关阅读:
    如何引用webservice
    oracle TNS 无法启动 解决方案
    android 照相
    Nutch 运行错误
    XML Bitmap
    Level List
    hadoop hdfs 上传下载文件
    Layer List
    android popup
    [置顶] Clean Talk
  • 原文地址:https://www.cnblogs.com/donaldworld/p/6557562.html
Copyright © 2011-2022 走看看