GCOV覆盖率分析

安全之安全(security²)博客目录导读

覆盖率分析汇总

目录

一、GCOV简介

二、GCOV使用示例

三、GCOV编译命令

四、运行并生成覆盖率报告

五、覆盖率报告分析


一、GCOV简介

        因为动态代码分析可能只覆盖部分代码,所以我们需要一个代码覆盖工具,以了解哪些代码被覆盖。目前有一些商业代码覆盖工具,如Bullseye。一些编译器还增加了代码覆盖功能,例如GCOV。

        GCOV是一个测试代码覆盖率的工具。与GCC一起使用来分析程序,以帮助创建更高效、更快的运行代码,并发现程序的未测试部分。它是一个命令行方式的控制台程序。需要结合lcov,gcovr等前端图形工具才能实现统计数据图形化。GCOV伴随GCC发布,不需要单独下载GCOV工具。配合GCC共同实现对c/c++文件的语句覆盖和分支覆盖测试。

GCOV覆盖率分析_第1张图片

二、GCOV使用示例

GCOV覆盖率分析_第2张图片

三、GCOV编译命令

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

-ftest-coverage:在编译的时候产生.gcno文件,它包含了重建基本块图和相应的块的源码的行号的信息。
-fprofile-arcs:在运行编译过的程序的时候,会产生.gcda文件,它包含了弧跳变的次数等信息。

四、运行并生成覆盖率报告

./vulnerable

# 生成覆盖率文本报告

lcov -c -d . -o test.info --rc lcov_branch_coverage=1

# 生成覆盖率网页报告

genhtml --branch-coverage -o result test.info

GCOV覆盖率分析_第3张图片

五、覆盖率报告分析

打开result文件夹下的index.html文件,即可得到网页版的覆盖率分析报告

GCOV覆盖率分析_第4张图片

GCOV覆盖率分析_第5张图片

GCOV覆盖率分析_第6张图片

你可能感兴趣的:(覆盖率分析,GCOV,覆盖率分析,覆盖率)