XDEBUG 从入门到精通

本文详细介绍Xdebug的安装、配置及调试流程,涵盖IDE配置、浏览器插件安装、远程调试及Docker环境下配置等方面。

前言

Xdebug是PHP的扩展,用于协助调试和开发。

  • 它包含一个用于IDE的调试器
  • 它升级了PHP的var_dump()函数
  • 它为通知,警告,错误和异常添加了堆栈跟踪
  • 它具有记录每个函数调用和磁盘变量赋值的功能
  • 它包含一个分析器
  • 它提供了与PHPUnit一起使用的代码覆盖功能。

猿生必备的工具。
但不推荐在生产环境中使用xdebug,因为他太重了。

安装

PECL 安装

pecl install xdebug
zend_extension="/usr/local/php/modules/xdebug.so"

源码包安装

https://xdebug.org/download.php 寻找对应的包

wget xxx.gz
./configure
make && make install
zend_extension="/usr/local/php/modules/xdebug.so"

Docker安装

以下为php dockerfile内部分内容

RUN pecl install xdebug
RUN echo 'zend_extension=xdebug.so' >> /usr/local/etc/php/conf.d/xdebug.ini

工作原理

IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个服务就会监听所有到9000端口的链接。

当浏览器发送一个带 XDEBUG_SESSION_START 的参数的请求到服务器时,服务器接受后将其转到后端的php处理,如果php开启了XDebug模块,则会将debug信息转发到客户端IP的IDE的调试端口上。

当参数或者cookie信息中不带 XDEBUG_SESSION_START ,则不会启动调试。这就为后续在浏览器中添加开关提供了可能。

基本配置

一般情况下,你都只需了解,无需修改。

名称 类型 默认值 注解
xdebug.default_enable boolean 1 堆栈跟踪,默认开启,是xdebug基础功能之一
xdebug.force_display_errors integer 0 默认关闭,如果这个设置设置为1,那么无论PHP的display_errors设置为什么,都将始终显示错误。
xdebug.force_error_reporting integer 0 默认关闭,允许强制显示某些错误
xdebug.halt_level integer 0 默认关闭,设置接收某些指定错误
xdebug.max_nesting_level integer 256 控制无限递归(死循环)的保护机制,默认是256
xdebug.max_stack_frames integer -1 控制有多少堆栈帧显示在堆栈跟踪中,在PHP错误堆栈跟踪的命令行中,以及在浏览器中显示HTML跟踪。
xdebug.scream boolean 0 默认关闭,如果该设置为1,那么Xdebug将禁用@(关闭)操作符,以便不再隐藏通知、警告和错误。

具体内容请移步官网 https://xdebug.org/docs/basic

打印配置

Xdebug将替换PHP的var_dump()函数来显示变量。Xdebug版本包含了不同类型的不同颜色,并对数组元素/对象属性的数量、最大深度和字符串长度进行了限制。还有一些其他函数也处理变量显示。

名称 类型 默认值 注解
xdebug.cli_color integer 0 cli模式下输入结果是否设置颜色
xdebug.overload_var_dump boolean 2 是否允许xdebug重载var_dump函数
xdeb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值