【VScode】C/C++ 代码覆盖率查看 Gcov Viewer插件最简教程【适合新人入手】

1、问题

使用 VScode 编写一个简单项目,没有特别复杂配置的情况下,我需要查看代码执行后的 语句覆盖率,用到 gcov 工具,效果如下图。(该函数语句覆盖率 100% ,18x 代表执行了18次
在这里插入图片描述

2、前提(最简环境)

(1)安装VScode

配置好了GCC 【版本大于9】(教程自己搜索哦,一大把~)

(2)安装插件

C/C++Code Runner(忘记用没用到了,反正属于默认安装的插件!)、 Gcov Viewer 插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建议安装 Error Lens,提示报错原因~超级棒的插件工具
在这里插入图片描述

3、核心(关键配置)

(1)新建工作环境

默认的文件夹(例如你在Code_04文件夹下,新建了一个main.c文件)
在这里插入图片描述

(2)生成 tasks.json 文件

点击 运行 C/C++ 文件,紧接着点击 C/C++:gcc.exe 的编译工具,然后在项目 文件夹 .vscode 多一个 tasks.json 文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)关键一步

打开 tasks.json 文件,替换文件中的 "${file}" 为下面的参数配置,并保存

                // 生成 Gcov 报告 手动设置快捷键显示Ctrl+1 清楚Ctrl+2
                "-fprofile-arcs",
                "-ftest-coverage",
                "-fPIC",
                "-O0",
                "${fileDirname}\\*.c",
图1 源文件
图2 复制替换

参数解释如下

"-fprofile-arcs",		// 启用代码覆盖率分析,记录代码中执行的分支,用于后续生成覆盖率数据。这是用于生成覆盖率报告的重要步骤。
"-ftest-coverage",		// 启用测试覆盖率支持,生成 .gcda 文件和 .gcno 文件,它们包含覆盖率信息。这些文件用于后续的代码覆盖率报告生成。
"-fPIC",				// 生成与位置无关的代码(Position Independent Code),通常用于动态链接库。即使在加载到不同的内存地址,生成的代码仍然可以正常运行。
"-O0",					// 禁用所有优化,以便更准确地分析覆盖率数据。优化可能会改变代码的执行路径,从而影响覆盖率分析的准确性。
"${fileDirname}\\*.c", 	// 替换{file}为{fileDirname}\\*.cpp ,为了可以编译一个文件夹下的全部c文件

4、成功享用~

(1)显示语句覆盖率

再次编译运行,就会发现在工作文件夹下,生成了 main.gcdamain.gcno 两个关于代码覆盖率信息的文件

然后按下 Ctrl+Shift+P 打开命令面板,输入 gcov 点击 Gcov Viewer:Show 即可成功显示覆盖率啦!
在这里插入图片描述
在这里插入图片描述

(2)快捷键配置建议~

覆盖率显示之后只能手动删除,即按下 Ctrl+Shift+P 打开命令面板,输入 gcov 点击 `Gcov Viewer:Reset,恢复原始页面。
在这里插入图片描述

并且 Gcov Viewer插件 只能显示一个exe文件编译运行过程的代码覆盖率,你想显示其他文件,就需要手动删除!
显然,原本的打开命令行窗口,输入…balabala这样的反复操作很麻烦的,快捷键解决!!!方法如下:

按下 Ctrl+Shift+P 打开命令面板,输入 gcov,在出现的页面下,点击右边的 配置 ,分别设置自己快捷键就好啦!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耗不尽的先生

小哥哥打赏的样子最酷啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值