
xdebug
Xdebug是一个开放原始码的PHP程式调试器(即一个Debug工具),可以用来跟蹤,调试和分析PHP程式的运行状况。Xdebug现在的最新版本是Xdebug 2.7.0beta1,release日期2018-09-20,添加了对PHP7.2的支持。
基本介绍
- 外文名:xdebug
- 类别:开放原始码的PHP程式调试器
- 属于:一个Debug工具
- 功能:跟蹤,调试PHP程式的运行状况
安装与设定
安装
下载xdebug
有两个版本带有Non-thread-safe和不带有Non-thread-safe,主要是看你的php版本是否执行绪安全版本。
然后複製到你的php下的ext目录里,
修改php.ini,增加如下信息:
[Xdebug]
zend_extension="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
;自动打开“监测函式调用过程”的功模。该功能可以在你指定的目录中将函式调用的监测信息以档案的形式输出。此配置项的默认值为off。
xdebug.collect_params=on
;打开收集“函式参数”的功能。将函式调用的参数值列入函式过程调用的监测信息中。此配置项的默认值为off。
xdebug.collect_return=on
;打开收集“函式返回值”的功能。将函式的返回值列入函式过程调用的监测信息中。此配置项的默认值为off。
xdebug.max_nesting_level=100
xdebug.profiler_enable=on
;打开效能监测器。
xdebug.remote_enable=on
;是否调试
xdebug.remote_host=localhost
xdebug.remote_port=9000
;调试连线埠
xdebug.remote_handler=dbgp
;选择协定
xdebug.trace_output_dir="d:\Temp"
;设定函式调用监测信息的输出档案的路径。
xdebug.profiler_output_dir="d:\Temp"
;设定效能监测信息输出档案的路径。
设定完参数,重启伺服器,使用phpinfo() 函式查看是否有 xdebug 项目,安装是否成功。
详细的配置参数选项如下:
配置参数选项 | 参数值类型与默认值 | 参数选项描述 |
---|---|---|
xdebug.auto_trace | boolean类型,默认值=0 | 是否在脚本运行之前自动调用相关追蹤函式。 |
xdebug.cli_color | integer类型,默认值=0 | 该参数自2.2版本开始引入。如果值=1,当处于CLI模式或连线虚拟控制台时,Xdebug将高亮显示var_dumps()和堆叠输出,;在Windows中,这需要安装ANSICON工具。如果值=2,不管是否处于CLI模式或连线虚拟控制台,Xdebug都会高亮显示var_dumps()或堆叠输出;这种情况下,你可能会看到转义后的代码。 |
xdebug.collect_assignments | boolean类型,默认值=0 | 该参数自2.1版本开始引入。用于控制是否为函式跟蹤添加变数赋值功能。 |
xdebug.collect_includes | boolean类型,默认值=1 | 控制是否在跟蹤档案中写入include()、include_once()、require()、require_once()等函式中用到的档案名称。 |
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 | 控制是否收集指定作用域中的变数信息。由于需要反向工程PHP的操作码数组,因此Xdebug的分析速度可能比较慢。 |
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 | 是否强制进入PHP解析器的"extended_info"模式,这将允许Xdebug以远程调试器对档案或行添加断点。开启此模式将拖慢脚本的允许速度,该参数只能在php.ini中设定。 |
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版本开始引入。是否强制显示所有错误级别的信息。 |
其它
安装wincachegrind
由于效能监测档案:cachegrind.out.××××××××档案的内容不易被人类所理解,所以我们需要一个工具来读取它。windows下就有一款这样的软体:wincachegrind。
1、到 下载安装wincachegrind
2、安装运行后,点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值)
这样就可以比较直观的查看效能监测档案的信息了。