Xdebug是PHP的开源调试和性能分析扩展,由Derick Rethans维护,采用Xdebug-1.03许可证。该工具支持PHP 8.0/8.1/8.2/8.3/8.4版本,提供Windows平台64位二进制文件及跨平台命令行调试客户端。核心功能包含逐步调试、错误报告增强、跟踪记录、性能分析和代码覆盖率分析,可通过修改php.ini文件配置参数启用,安装后需重启服务器并验证加载状态。 [3-4] [6]
Xdebug 3.4.5版本于2025年7月14日发布,修复了多个崩溃问题并延续对PHP高版本的支持传统。配套工具Xdebug helper是一款Chrome浏览器插件,支持通过热键切换调试状态(如Ctrl+Shift+X),集成PHPStorm等IDE配置。该插件提供调试图标可视化操作,最新1.6.2版本更新于2024年10月6日。效能分析可使用wincachegrind工具处理跟踪文件,开发者还可利用DBGp代理工具实现协同调试。 [2-3] [5-6]
安装与设置
播报编辑
安装
下载纹雅燥xdebug
[Xdebug]
zend_exte纸恋祖笑nsion="x:\PHP\ext\php_xdebug-2.0.5-5.2.dll"
;以下是参数
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir=”x:\Temp”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”x:\Temp”
;x为实际盘符
参数设置
xdebug.default_enable=on
;显示默认的错误信息
xdebug.auto_trace=on
xdebug.collect_params=on
;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.collect_ret叠盼巩urn=on
xdebug.max_nesting_level=100
xdebug.profiler_enable=on
;打开效能监测器。
xdebug.remote_enable=on
;是否调试
xdebug.remote_host=localhost
xdebug.remote_port=9达项000
;调试端口
xdebug.remote_handler=dbgp
;选择协议
xdebug.trace_output_dir="d:\Temp"
xdebug.profiler_output_dir="d:\Tem犁束民p"
;设定效酷体兵能监测信息输出文件的路径。
详细剃抹的配置参数选项如下 [1]:
配置参数选项 | 参数值类型与默认值 | 参数选项描述 |
---|---|---|
xdebug.auto_trace | boolean类型,默认值=0 | 是否在脚本运行之前自动调用相关追踪函数。 |
xdebug.cli_color | integer类型,默认值=0 | |
xdebug.collect_assignments | boolean类型,默认值=0 | 该参数自2.1版本开始引入。用于控制是否为函数跟踪添加变量赋值功能。 |
xdebug.collect_includes | boolean类型,默认值=1 | |
xdebug.collect_params | integer类型,默认值=0 | 控制在调用函数时,是否收集传递给函数的参数信息。如果参数值过大,这可能会占用大量的内存;不过,在Xdebug 2中不会出现该问题,因为Xdebug 2将相关数据写入磁盘中,而不是占用内存。 如果值=0,则不显示任何信息。 如果值=1,只显示类型和大小信息,例如:string(6)、array(8)。 如果值=2,将显示类型和大小,以及全部信息的工具提示。 如果值=3,将显示变量的全部内容。 如果值=4,将显示变量的全部内容和变量名。 |
xdebug.collect_return | boolean类型,默认值=0 | |
xdebug.collect_vars | boolean类型,默认值=0 | |
xdebug.coverage_enable | boolean类型,默认值=1 | 该参数自2.2版本开始引入。控制是否允许通过设置内部结构来启用代码覆盖率功能。 |
xdebug.default_enable | boolean类型,默认值=1 | |
xdebug.dump.* | string类型,默认值=Empty | 这里的*可以是COOKIE, FILES, GET, POST, REQUEST, SERVER, SESSION中的任意一个。用于指定发生错误时是否显示超全局变量数组中的索引变量信息。比如,你想要显示请求的IP地址和请求方式,可以设置为 xdebug.dump.SERVER=REMOTE_ADD,REQUEST_METHOD 多个索引变量用英文逗号隔开,如果要输出其中的所有变量,可以直接用*,例如: xdebug.dump.GET=* |
xdebug.dump_globals | boolean类型,默认值=1 | 控制是否显示通过xdebug.dump.*定义的所有超全局变量的信息。 |
xdebug.dump_once | boolean类型,默认值=1 | 如果出现多个错误,控制超全局变量信息是在所有错误中显示,还是只在第一个错误中 |
xdebug.dump_undefined | boolean类型,默认值=1 | 控制是否显示超全局变量中未定义的值 |
xdebug.extended_info | integer类型,默认值=1 | |
xdebug.file_link_format | string类型,默认值=, | 自2.2版本开始引入。用于指定堆栈信息中用到的文件名称的链接样式,这允许IDE通过设置链接协议,直接点击堆栈信息中的文件名称,即可快速打开指定的文件。例如:ZendStudio://%f@%l(%f表示文件路径,%f表示行号)。 |
xdebug.force_display_errors | integer类型,默认值=0 | 自2.3版本开始引入。是否强制显示错误信息。 |
xdebug.force_error_reporting | integer类型,默认值=0 | 自2.3版本开始引入。是否强制显示所有错误级别的信息。 |
其它
播报编辑
由于效能监测文件:cachegrind.out.××××××××文件的内容不易被人类所理解,所以需要一个工具来读取它。windows下就有一款这样的软件:wincachegrind。
1、下载安装wincachegrind
这样就可以比较直观的查看效能监测文件的信息了。