当前位置: 首页 > 工具软件 > Gcovr > 使用案例 >

windows环境下使用gcov和gcovr

姚善
2023-12-01

前提

        一个“.c”或者“.cpp”文件,gcc命令能够使用,下载了lcov或者gcovr

安装


    ★  gcov:不用安装,会跟随GCC配套发布


    ★  lcov:gcov的图形化前端
                Ubuntu系统安装:sudo apt-get install lcov
                windows系统安装:windows环境博主未安装lcov,可能比较繁琐,有需要可以自行搜索安装


    ★  gcovr:gcov的图形化前端,功能更全面,更方便,有lcov的全部功能
                windows/linux系统下安装:pip install gcovr(前提是安装了python,能使用pip)

操作过程


    (0)在.c文件所在路径下打开cmd。


    (1)生成覆盖率信息文件(“.exe”和“.gcno”文件): 
                ●   gcc(或者g++) -fprofile-arcs -ftest-coverage .c文件名

//比如我要打开“hello.c”
使用命令:

gcc -fprofile-arcs -ftest-coverage -o hello hello.c

可以得到hello.c 的可运行文件hello.exe
也可以不要“-o hello”,那样会得到a.exe文件


                        -ftest-coverage选项:添加记录单行代码执行次数的指令
                        -fprofile-arc选项:添加程序每个分支的检测代码(if或者其它条件语句)


    (2)生成代码覆盖率信息文件(“.gcda”文件):
                ●   运行可执行程序“.exe”文件

用上面的例子

使用命令行:
    
    hello.exe


    (3)生成代码覆盖率报告(“.gcov”文件和“.c.gcov”文件): 
                ●   gcov .c文件名

gcov hello.c

★  LCOV和GCOVR   二选一

◐可视化(LCOV):(LCOV博主没有使用,此处是搜索得到)


    (4)用LCOV收集相关数据并生成一个.info文件:
        ●   lcov --capture --directory . --output-file coverage.info


    (5)通过genhtml将coverage.info转化为HTML文件(genhtml是lcov自带的工具):
        ●   genhtml coverage.info --output-directory out
            生成的OUT目录里包含了HTML版的代码覆盖率报告。


◑可视化(GCOVR):


    (4)生成HTML代码覆盖率报告
        ●   gcovr -r . --html --html-details -o coverage.html

直接输入命令

 gcovr -r . --html-details -o coverage.html

如果想修改得到的文件名,可以修改coverage.html

              

 类似资料: