c语言gcno文件位置,C 代码覆盖率

本文介绍了如何使用GCC的gcov和lcov工具进行C语言代码覆盖率分析。通过添加特定编译和链接标志,生成gcno和gcda文件,结合genhtml生成可视化报告,以便于评估测试用例的覆盖情况。
摘要由CSDN通过智能技术生成

C 代码覆盖率

2018-11-28 Wednesday

我们已经提供了一些测试用例,但是这些测试用例的好坏如何评估?是否已经覆盖了所有的函数?函数中的分支以及边界条件是否都已经覆盖?

这就需要通过代码覆盖率进行查看,这里简单介绍其使用方法。

简介

在 GCC 中,提供了一个代码覆盖率的分析工具 gcov ,除此之外,还可以使用 lcov genhtml 等工具生成最终的展示页面。

CentOS 中可以通过如下命令安装。

# yum install --enablerepo=epel lcov

使用

在使用 gcc 或者 g++ 后面添加参数 --fprofile-arcs --ftest-coverage ,必须同时在编译器和链接器上设置,在 Makefile 里面可以加在 CFLAGS 和 LDFLAGS 上。

编译完成之后,会生成相关的 *.gcno 文件,运行之后生成 *.gcda 文件,然后可以使用 gcov *.c 生成 *.c.gcov 代码覆盖信息,参数如下。

不过这个是文本的,可以将生成的文件 main.c.gcov 通过编辑器打开,会发现在代码前有很多的符号标记,简介如下:

##### 没有被执行过。

- 不计入统计。

N 被调用执行的此时。

文件文件观察起来不太方便,可以通过 lcov 生成图形化的代码覆盖数据。

$ lcov -d . -t 'Main Test' -o 'main_test.info' -b . -c

会生成一个 main_test.inf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值