安装 Php模块 xdebug

参考链接:https://blog.csdn.net/21aspnet/article/details/54808850

安装 Xdebug 模块

  • 复制 phpinfo() 输出的的所有内容;
  • 粘贴到 https://xdebug.org/wizard.php 的文本域内;
  • 点击按钮 Analyse my phpinfo() output
  • 系统会推荐一套安装方案,下载推荐的 .dll 放到 php\ext 目录,
  • 最后在 php.ini 新增行(首行根据实际情况编辑):
[Xdebug]
zend_extension = e:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\Users\Administrator\Desktop\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = on
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "C:\Users\Administrator\Desktop\tmp"
xdebug.idekey = PHPSTROM
  • 重启 php 服务。

使用 Xdebug 调试

  • 进入 PhpStorm,勾选 View->ToolBar
  • 点击 Run/Edit Configurations...,点击加号+,选择 PHP Web Applicatoins(Page) 创建调试,Name 的值随便,对于 Server 的值,点击旁边的 ... 按钮浏览,点击加号 + 新增,Name 的值随便,Host 输入要测试的主机域名(例如 localhost),Port 端口号默认是80Debugger 选择 Xdebug,点击确定。
  • Start Url 填写要测试的地址,Bowser选择调试用的浏览器,点击确定。
  • 在程序中打断点(快捷键F9)。
  • 点击工具栏上的开始调试按钮(瓢虫样式的按钮),程序将走到断点处暂停运行,此时可以观测代码区域内各个变量的值。
  • 可以自己选中变量拖入右下方的 watches 进行特别观察,也可以在那里输入变量名添加要观察的变量。
  • 关于调试按钮的快捷键,如想设置成 Visual Studio 的模式,可以到
    View/Quick Switch Scheme/Keymap选择Visual Studio
  • 如果断点无效,查看浏览器控制台 Application/Cookies/(网址)中的键值对,按浏览器地址栏中的XDEBUG_SESSION_START的值,新增键值对:XDEBUG_SESSION->13228,之后刷新重试。

Xdebug 工作原理

参考文档:https://blog.csdn.net/wang740209668/article/details/50588557

  • xdebug 可以控制 PHP 程序的执行,这意味着 xdebug 可以在任何时候暂停或者恢复正在运行的 PHP 程序。
  • 当 PHP 程序被暂停的时候,xdebug 可以获取到程序的相关信息,比如变量的值等。
  • xdebug 也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行。
  • xdebug 配合 IDE 进行可视化调试的过程(类似于 Visual Studio 单步调试)被称为“远程调试”,是因为调试时有一个 Server(xdebug) 和一个 Client(IDE),所以在调试的时候,被调试的 PHP 程序和调试 PHP 程序的 IDE 可以不在同一台电脑上。
  • xdebug 在进行远程调试的时候扮演一个 Server 的角色,它会在一个指定的端口(默认是9000)等待 IDE 的连接。目前有2种通信的协议,GDB 和 DBGp,其中 DBGp 是 DBG 的取代协议。
  • IDE 在执行调试的时候,给 xdebug 发送需要执行的命令,xdebug 接受到命令后执行,然后将执行的情况和获得的 PHP 程序运行信息返回给IDE。现在很多 IDE 都实现了与 xdebug 通信的协议,比如 Eclipse PDT。
  • Xdebug远程调试有2种方式:
    1. req:在 PHP 程序开始执行的时候,xdebug 与 IDE 建立连接。
    2. jit:在 PHP 程序执行到断点处或者遇到 Error 的时候,xdebug 才与 IDE 建立连接。
  • 开启 xdebug 远程调试需要通过 GET, POST 或是 cookie 的方式传入一个 XDEBUG_SESSION_START 变量,XDEBUG_SESSION_START变量的值代表一个 session 的名称。通过这种形式,xdebug 可以分辨出不同的 session。如果要结束一个 session 可以通过同样的形式传入一个XDEBUG_SESSION_STOP

猜你喜欢

转载自blog.csdn.net/petezh/article/details/81482059