Xdebug文档(五) 代码覆盖分析

代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。php

相关设置html

xdebug.coverage_enable数组

类型: boolean, 默认值: 1, 始于 函数

Xdebug >= 2.2spa

若是设为0, Xdebug不会设置内置结构来容许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工做。debug

相关函数

boolean xdebug_code_coverage_started()

返回布尔值查看代码覆盖分析是否已经开始。code

Example:htm

<?php
    var_dump(xdebug_code_coverage_started());

    xdebug_start_code_coverage();

    var_dump(xdebug_code_coverage_started());
?>  

 

Returns:blog

bool(false)
bool(true)
 

 

array xdebug_get_code_coverage()索引

返回一结构包含脚本哪一行(包括引用文件)在执行。如下展现代码覆盖指定某一文件示例:

Example:

<?php
    xdebug_start_code_coverage();

    function a($a) {
        echo $a * 2.5;
    }

    function b($count) {
        for ($i = 0; $i < $count; $i++) {
            a($i + 0.17);
        }
    }

    b(6);
    b(10);

    var_dump(xdebug_get_code_coverage());
?>  

 

Returns:

array

  '/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php' =>

    array

      5 => int 1

      6 => int 1

      7 => int 1

      9 => int 1

      10 => int 1

      11 => int 1

      12 => int 1

      13 => int 1

      15 => int 1

      16 => int 1

      18 => int 1

void xdebug_start_code_coverage( [int options] )

开始代码覆盖分析

该函数开始收集代码覆盖信息。该信息由二维数组造成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。

每行返回的值:

  • 1: 该行已执行过
  • -1:      该行未被执行
  • -2:      该行没有可执行的代码

 -1 值只有在 XDEBUG_CC_UNUSED  开启后才会返回,而 -2 值只有XDEBUG_CC_UNUSED 和 XDEBUG_CC_DEAD_CODE 同时开启才会返回。

函数有两个以枚举值的选项:

XDEBUG_CC_UNUSED

开启检测代码并说明哪行为可执行代码。无此项则返回的数组只包含实际执行过的行号。

XDEBUG_CC_DEAD_CODE

开始额外的分析说明哪些代码能被执行。

若是开启这些选项执行大幅减慢代码覆盖分析速度。

如下示例展现如何使用选项:

Example:

<?php
xdebug_start_code_coverage( XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE );
?>

 

void xdebug_stop_code_coverage( [int cleanup=true] )

中止代码覆盖分析

该函数中止收集信息,该信息在内存中会被清除。若是你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用 xdebug_start_code_coverage() 恢复信息收集。

相关文章
相关标签/搜索