7得票3回答
如何解读 gcov 输出以提高覆盖率?您有什么技巧?

我在我的项目中成功使用了gcov: 我可以使用gcov标志构建我的项目:-fprofile-arcs -ftest-coverage 我链接了-lgcov选项 我运行我的单元测试程序,产生了大量的gcda和gcno文件。 我多次运行gcov,产生了大量的gcov文件。 我总结结果并生成类似...

7得票1回答
忽略或排除gcov中外部库的代码

我正在开发一个项目,其中使用了几个boost库。在查看我们的测试报告时,我们发现有时测试覆盖率信息与我们的源代码不符。我能够追踪到这是由于boost::range引起的。我认为这是由于库内部的一些静态初始化引起的,尽管我无法说出更具体的原因。 基本上,如果你使用gcc --coverage编...

7得票1回答
如何使用gcov禁止模板内联

我正在使用GCC 4.9和GCOV来获取代码和分支覆盖率,但是对于我的C++代码来说,分支覆盖率的结果完全无用。似乎即使使用我知道的所有-fno-*-inline标志,GCC也会内联模板。以下是一个小示例应用程序,说明了这个问题: #include <string> #inclu...

7得票2回答
堆栈中创建的对象,即使代码覆盖率达到100%,功能覆盖率也会降低

我正在使用gcov分析我的代码。在对象创建在堆栈中时,它显示我的代码比较少了2个函数。但是,当我使用new-delete时,可以实现100%的函数覆盖率。 代码: class Animal { public: Animal() { } virtual ~An...

7得票3回答
gcov没有显示任何覆盖数据。

我正在尝试在Linux(Ubuntu)上使用gcov来查看源代码每行的执行频率。 我已经将以下标志添加到我的gcc编译器和链接器标志中: CCFLAGS = -fprofile-arcs -ftest-coverage LDFLAGS = -fprofile-arcs -lgcov ...

7得票2回答
为什么gcc 4.1 + gcov报告“p = new class;”行的分支覆盖率为100%,而更新的版本(4.4、4.6、4.8)报告为50%?

当使用 gcov 的 gcc 4.1 下一行代码: p = new Class; 被报告为 100% 分支覆盖 <-- 这对我来说是没问题的。 为什么使用 gcc 4.4 及更高版本相同的代码会被报告为: [+ -] p = new Class; (50% 分支覆盖)... &l...

7得票1回答
gcov 忽略源文件中的代码行

我正在使用gcov来计算我贡献的C++库的测试覆盖率。但是出现了一个问题,gcov没有识别出很多文件中的可执行行。在给定文件的大约160行中,它只会把40行标记为可执行。例如: -: 0:Source:../evo/NK.h -: 0:Graph:t...

7得票2回答
如何在当前/构建/运行目录之外的源文件中使用gcovr?

mkdir -p /tmp/build && cd /tmp/build && mkdir -p /tmp/src && echo "int main(){return 0;}" > /tmp/src/prog.c && g...