zoukankan      html  css  js  c++  java
  • bcov进行覆盖率统计

    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

    查看之:

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

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

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

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

  • 相关阅读:
    常用正则表达式
    玉洁哥的设计模式指摘
    jquery makearray()使用
    html/css技巧总结
    json 数组 对象 xml 之间转换(待补充)
    Html5 Geolocation获取地理位置信息
    JSON.stringify 应用
    url操作一网打尽(一)
    jquery选择器
    JavaScript Window Location
  • 原文地址:https://www.cnblogs.com/laodageblog/p/3853874.html
Copyright © 2011-2022 走看看