问题标签 [gcov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

unit-testing - 使用 gcov 测试其他源文件的覆盖率

对于一个类项目,我必须使用 gcov 来测试没有 main 函数但由具有 main 函数的文件调用的文件的覆盖率。所以有一个 .c 文件,其中包含我们一直在编写的所有库调用,然后有一个 .c 文件来测试这些调用。问题是,如果我使用 gcov,它仅适用于可执行的 .c 文件,并且不显示其他 .c 文件中函数调用的覆盖范围。

有谁知道是否有办法解决这个问题?

0 投票
4 回答
10154 浏览

c++ - Getting useful GCov results for header-only libraries

For my header-only C++ library (lots of templates etc) I use GCov to check test coverage. However, it reports 100% coverage for all headers because the unused functions aren't generated by the compiler in the first place. Manually spotting uncovered functions is easy but defeats the purpose of continuous integration…</p>

How does one solve this automatically? Should I just use "lines hit / LOC" as my coverage metric and just never reach 100% again?

0 投票
4 回答
26788 浏览

gcc - gcov 不生成 gcda 文件

我尝试使用-fprofile-arcs&运行 gcov,-ftest-coverage但没有任何链接。

它给出了这个错误: -

和程序退出。

编译命令——

任何帮助将不胜感激。

谢谢。

0 投票
1 回答
180 浏览

c++ - BS-42e6.gcno 文件调试

我正在尝试使用现有代码库配置 gcov 以实现代码覆盖。现有代码库是基于服务的代码库(即包含多个文件 c 和 cpp 以及一项服务)

我已经关注了配置 gcov 的 wiki 页面,并将 -fprofile-arcs -ftest-coverage 添加到 makefile 中。当我编译服务时,它只生成一个 gcno 文件,该文件有一些名称(BS-42e6.gcno)。

根据 wiki 页面,gcov 应该为每个 c 和 cpp 文件(如 test.c.gcno 和 test1.cpp.gcno)生成 gcno 文件,但我有一个 gcno 文件。

我不知道如何进一步处理 gcno 文件。

该服务存在于基于 xml 的框架中。所以我们从 xml 传递输入,框架对输入参数进行编组和解组,并传递 c 或 cpp 文件。

所以我对测试gcov文件有疑问。根据wiki页面,我们从编译中得到a.out,我们运行a.out并生成相应的文件。但就我而言,我将如何进一步进行。

如果我需要提供更多信息,请告诉我

http://gcc.gnu.org/onlinedocs/gcc/Gcov.html http://www.ecoscentric.com/ecospro/doc/html/ref/gcov.html http://codingfreak.blogspot.in/2009/ 02/gcov-analyzing-code-produced-with-gcc.html

0 投票
3 回答
3758 浏览

gcov - lcov 用于包含 gcda 文件的多个目录

我想使用 gcov 和 lcov 生成覆盖率报告。

到目前为止我所做的:-

我必须做的:-

我必须使用这些数据文件 (.gcda) 并想使用 lcov 创建一个干净的报告。

问题:-

有多个目录,其中有源文件,在每个目录中,我正在创建一个 obj/ARCH 目录来保存目标文件。

因此最终的目录结构将是:-

与 M3、M4、M5 相同。

我正在从 proto 级别执行 lcov,它会找到 .gcda 文件,但在查找 .h 和 .C 文件时会出现一些错误。知道如何使此流程路径独立吗?

提前致谢。

0 投票
2 回答
834 浏览

c++ - Bjam 用于 gcov 覆盖率分析?

我希望为主要用 C++ 编写的项目集成一个重要的跨平台构建系统。到目前为止,我已经评估了 Cmake 和 Scons,虽然它们都代表了对 (GNU) make 的改进,但在我尝试使用这些工具的上下文中,这两种方法似乎既不优雅也不透明。这让我想到了 Boost Build (Bjam),我很受鼓舞的是,鉴于我的项目依赖于 Boost,bjam 应该已经可用于任何可行的目标平台。

我在尝试为库的单元测试巧妙地集成代码覆盖率时遇到了困难......以最终集成到构建服务器(如 Jenkins)中。虽然我愿意以 Bjam 最佳/标准实践为指导,但我认为我需要三个不同的“变体”:

  • release - 仅构建优化的静态库
  • debug - 构建非优化的静态库和单元测试
  • 覆盖 - 构建支持覆盖的库并与未启用覆盖的单元测试链接。

本质上,除了标准的调试和发布版本之外,我还想要一个专用的调试版本,它还可以收集覆盖率数据。

我需要使用(至少)g++ 和 msvc 构建......并且仅使用 g++ 使用 gcov 开关。这意味着我的库目标需要与单元测试可执行目标不同的“编译器标志”......并且仅适用于我的一个编译器套件......并且仅适用于一个变体。

我不清楚如何最好地使用 Bjam 来实现这一点——不过,我怀疑它应该是一个相当常见的用例。Bjam 是否明确支持 gcov 覆盖分析(可能使用 lcov 呈现结果)?如果没有,任何人都可以推荐一种支持上述(简化)方案的策略吗?

0 投票
4 回答
9695 浏览

gcov - 在 Mac 上读取 .gcno 和/或 .gcda 文件

我的构建目录包含 .gcno 和 .gcda 文件。当我用 CoverStory 打开目录时,一切正常。

我的最终目标是读取 gcov 输出(.gcno 和 .gcda 文件),但这两种文件类型是二进制格式。有没有办法通过终端读取它们,以便我可以将文本保存为文本文件?

谢谢!

0 投票
0 回答
1352 浏览

linux - 在 Linux 中使用 GCOV_PREFIX 在所需位置创建 *.gcda 文件?

我在使用 GCOV_PREFIX 环境变量时遇到问题。

我在构建机器上使用的编译器版本 - gcc 版本 3.4.6 20060404 (Red Hat 3.4.6-3)

我在构建机器上使用“fprofile-arcs –ftest-coverage”编译我的源文件(*.c),它在以下位置

/A B C D

/a/b 安装在以下目录“/tmp/test/a/b”中的测试机器上。在测试机器上,当我执行可执行文件时,需要使用相同的目录结构“a/b/c/d”来创建 *.gcda 文件。由于它不可用,因此我收到此类错误“profiling:/a/b/c/d/xyz.gcda:Cannot open”。

但我不想在我的测试机中创建相同的目录结构。

我想在我的测试机器中创建一个目录(/tmp/gcovfiles),并且我希望在 /tmp/gcovfiles 位置创建 gcda 文件。

我尝试使用环境变量 GCOV_PREFIX 和 GCOV_PREFIX_STRIP。但它没有任何效果。可能是我没有正确使用它。

能否请你帮忙?

0 投票
1 回答
837 浏览

xml - 是否有将 Emma XML 报告转换为 Cobertura XML 格式的工具?

我使用的代码覆盖工具只能生成 Emma XML 报告,而我需要的是 Cobertura 或 gcov 格式。是否已经存在一些用于进行转换的工具?如果没有,恐怕我必须自己做。

0 投票
1 回答
1524 浏览

c - (a && b) 语句中有多少个分支?根据 gcov:4

我用“gcc -fprofile-arcs -ftest-coverage test.c”编译了以下程序:

运行程序后,调用“gcov -bc test.c”报告至少有 4 个分支中的 50% 被占用一次。为什么 gcov 说程序有四个分支,而不是两个?运行以下程序后,gcov 正确报告 50% 的 2 个分支至少被占用一次: