首页 > 其他 > 详细

bcov进行覆盖率统计

时间:2014-07-19 00:35:17      阅读:548      评论:0      收藏:0      [点我收藏+]

kcov是在bcov基础上进行的,bcov已经很久没有维护了;

首先需要下载依赖库libdwraft,然后在configure时候进行指定:

./configure --with-libdwarf=/usr/local/lib

然后make;make install

(1)悲催的是编译过程中出现了错误

‘PTRACE_O_TRACECLONE’ was not declared in this scope

增加头文件<sys/ptrace>

同时对ptrace调用的地方进行强制类型转换,例如原来是

ptrace(PTRACE_GETREGS,activeChild,0,&regs);

然后修改为

ptrace((__ptrace_request)PTRACE_GETREGS,activeChild,0,&regs);

既可以编译通过了;

(2)安装以后就可以使用了,对源程序编译时候需要增加-g参数,否则统计不到信息 

g++ t.cpp -O0 -g

 

启动程序的时候使用bcov启动:

bcov ./a.out  & 

  

启动会显示

probing debug information...
found active lines in 1 source files
set 11 breakpoints

  然后killall

killall -9 a.out 

  显示

program terminated
coverage info written to .bcovdump

  

此时本地生成了覆盖率文件.bcovdump

bcov-report ./.bcovdump ~/httpd/htdocs/bcov-report.DhblLi

查看之:

 

bubuko.com,布布扣

 

跟gcov相比,对于服务类型的测试覆盖率统计分析

(1)bcov不需要新增编译参数和连接参数;但是需要增加-g的选项;

(2)gcov需要启动时候设置环境变量,而bcov需要使用bcov命令启动被测程序;

(3)合并多个文件的事情,可以看到bcov的输出文件是.bcovdump是一堆数字,似乎更容易编辑

bcov进行覆盖率统计,布布扣,bubuko.com

bcov进行覆盖率统计

原文:http://www.cnblogs.com/laodageblog/p/3853874.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!