关键词:xdebug php
xdebug 功能
xdebug 是 php 用来调试、性能调优的工具,常见的功能:
- 打印变量
- 堆栈追踪
- 函数追踪
- 代码覆盖度分析
- 远程调试
详情见文档:https://xdebug.org/docs/
编译安装 xdebug
xdebug.org 提供了一套在线分析系统,能够根据 php -i 的输出信息,给出对应系统的安装步骤。但无非是常见的那几个步骤,没有特殊的操作。
首先下载代码: https://xdebug.org/files/xdebug-2.4.0.tgz
解压缩后,进入 xdebug-2.4.0,执行下面的命令配置 xdebug,观察输出的路径是否是 php-5.6.21:
./configure --enable-xdebug --with-php-config=/usr/local/php-5.6.21/bin/php-config
加上 --with-php-config 参数的目的是让 configure 能够使用 php-5.6.21 的环境,而不是 os 默认的 php-5.3 的环境。
区别在于 php/zend API 版本不同,运行 phpize 和 /usr/local/php-5.6.21/bin/phpize 对比输出可以看到版本号的不同。
之后执行 make,成功后得到 modules/xdebug.so,将这个文件 cp 到 /usr/local/php-5.6.21/extensions/ 目录下,既完成了安装。
使用 xdebug
需要在 php.ini 中加入:
[xdebug] zend_extension = /usr/local/php-5.6.21/extensions/xdebug.so xdebug.profiler_enable = on xdebug.default_enable = on xdebug.cli_color = 1
注意,zend_extension 需要写全路径。
测试代码:
<?php $a = 123; $b = $a; xdebug_debug_zval(‘a‘); var_dump($a); $c = ‘xdebug‘; xdebug_debug_zval(‘c‘); var_dump($c); $mod = [‘name‘ => ‘xdebug‘, ‘version‘ => ‘2.4‘, ‘enabled‘ => TRUE]; var_dump($mod);
执行测试程序:
php-5.6.21 -c php.ini test_xdebug.php
输出:
能得到带颜色的输出是因为刚刚在 php.ini 中加入 xdebug.cli_color = 1 的配置项。
可以看到 var_dump() 本身也得到了增强,带上了行号。
更多的功能请参阅 xdebug 在线文档:https://xdebug.org/docs/