Xdebug文档(五) 代码覆盖分析
代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。
相关设置
xdebug.coverage_enable
类型: boolean, 默认值: 1, 始于
Xdebug >= 2.2
如果设为0, Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。
相关函数
boolean xdebug_code_coverage_started()
返回布尔值查看代码覆盖分析是否已经开始。
Example:
<?php
var_dump(xdebug_code_coverage_started()); xdebug_start_code_coverage(); var_dump(xdebug_code_coverage_started());
?>
Returns:
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() 恢复信息收集。
Xdebug文档(五) 代码覆盖分析的更多相关文章
- Xdebug文档(六) 分析PHP脚本
分析PHP脚本Xdebug内置分析器能让你找到脚本中的瓶颈并用额外的工具诸如KcacheGrind或WinCacheGrind工具可视化. 介绍 Xdebug分析器是分析PHP代码和判断瓶颈或确定代码 ...
- 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...
- 随时发布:REST API文档的代码仓库中的持续集成与协作
本文主要内容:API文档提供了预测客户成功的关键路径:在代码附近的文档上进行协作可以更好地检查代码和文档文件,提高自动化效率,并专门针对文档进行质量测试:提供通用文档框架,标准,自动化和工具,以提高团 ...
- Xdebug文档(七) 远程调试
Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...
- 软件工程第4次作业------石墨文档Android客户端案例分析
作业要求的博客链接:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 分析产品:石墨文档Android客户端 第一部分 调研和评测 1. ...
- 在Eclipse中如何关联spring-framework的文档和源代码
1.到官方网站去下载spring-framework的jar包 spring-framework jar包的下载地址是:http://repo.spring.io/release/org/spring ...
- 【奇淫技巧】API接口字段table文档转代码工具
今天做一个视频接口对接,发现对方提供的文档没有json格式,无法自动生成请求和响应对象 json自动生成C#类的工具 http://tool.sufeinet.com/Creater/JsonClas ...
- 【swupdate文档 五】从可信的来源更新镜像
从可信的来源更新镜像 现在越来越重要的是,设备不仅要能安全地进行更新操作, 而且要能够验证发送的图像是否来自一个已知的源, 并且没有嵌入恶意软件. 为了实现这个目标,SWUpdate必须验证传入的镜像 ...
- C#读取Word文档内容代码
首先要添加引用com组件:然后引用: using Word = Microsoft.Office.Interop.Word; 获取内容: /// /// 读取 word文档 返回内容 /// //// ...
随机推荐
- Java this的一两点使用
Java this的一两点使用 之前的文章都是关于Android的使用,这次想写一些关于Java的知识,总结一下Java的使用.这次写的是关于Java this的使用,介绍以下内容: this的概念 ...
- JavaScript学习笔记之Array
数组的定义: 1,var arr=new Array(); -->数组是特殊的对象,typeOf的返回值是object arr[0] arr[1] ... 2,var arr=new ...
- 缓存篇(Cache)~大话开篇
回到占占推荐博客索引 闲话杂淡 想写这篇文章很久了,但总是感觉内功还不太够,总觉得,要写这种编程领域里的心法(内功)的文章,需要有足够的实践,需要对具体领域非常了解,才能写出来.如今,感觉自己有写这种 ...
- 监控Linux系统性能的工具--nmon(一)
今天看到一资料上写着,nmon可以对linux系统进行性能监控,随手在自己的阿里云上敲了一下这个命令,提示'command not find' 一脸懵~,然后探索了一下如何安装这个工具以及如何更好的查 ...
- iOS---runtime介绍
本文目录 1.Runtime简介 2.Runtime相关的头文件 3.技术点和应用场景 3_1.获取属性\成员变量列表 3_2.交换方法实现 3_3.类\对象的关联对象,假属性 3_4.动态添加方法, ...
- 20个JS优化代码技巧
原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...
- Newtonsoft.json中 linq to json 和序列化哪个快?
Newtonsoft.json是最常用的json序列化组件,当然他不是最快的,但是是功能最全的.. using System; using System.Collections.Generic; us ...
- 在 ML2 中配置 Vlan Network- 每天5分钟玩转 OpenStack(93)
上一节我们学习了 Neutron Vlan Network 的原理,今天讨论如何在 ML2 配置中 enable 它. 首先在 /etc/neutron/plugins/ml2/ml2_conf.in ...
- VS 2015 Enterprise第二大坑
前言 继上篇文章之后,你会继续跌进大坑,这个坑困扰我一上午,同时也会让你大跌眼镜,如果你遇到了,那么恭喜你提升自身能力和解决能力的时机到了,当然你可以通过本文继续少走不必要的弯路[我也是无意中发现的捷 ...
- java中的list时间排序
最初设想使用:时间long型 private void testTimes() throws InterruptedException{ Calendar cal=Calendar.getInstan ...