问题标签 [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.
unit-testing - 使用 gcov 测试其他源文件的覆盖率
对于一个类项目,我必须使用 gcov 来测试没有 main 函数但由具有 main 函数的文件调用的文件的覆盖率。所以有一个 .c 文件,其中包含我们一直在编写的所有库调用,然后有一个 .c 文件来测试这些调用。问题是,如果我使用 gcov,它仅适用于可执行的 .c 文件,并且不显示其他 .c 文件中函数调用的覆盖范围。
有谁知道是否有办法解决这个问题?
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?
gcc - gcov 不生成 gcda 文件
我尝试使用-fprofile-arcs
&运行 gcov,-ftest-coverage
但没有任何链接。
它给出了这个错误: -
和程序退出。
编译命令——
任何帮助将不胜感激。
谢谢。
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
gcov - lcov 用于包含 gcda 文件的多个目录
我想使用 gcov 和 lcov 生成覆盖率报告。
到目前为止我所做的:-
我必须做的:-
我必须使用这些数据文件 (.gcda) 并想使用 lcov 创建一个干净的报告。
问题:-
有多个目录,其中有源文件,在每个目录中,我正在创建一个 obj/ARCH 目录来保存目标文件。
因此最终的目录结构将是:-
与 M3、M4、M5 相同。
我正在从 proto 级别执行 lcov,它会找到 .gcda 文件,但在查找 .h 和 .C 文件时会出现一些错误。知道如何使此流程路径独立吗?
提前致谢。
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 呈现结果)?如果没有,任何人都可以推荐一种支持上述(简化)方案的策略吗?
gcov - 在 Mac 上读取 .gcno 和/或 .gcda 文件
我的构建目录包含 .gcno 和 .gcda 文件。当我用 CoverStory 打开目录时,一切正常。
我的最终目标是读取 gcov 输出(.gcno 和 .gcda 文件),但这两种文件类型是二进制格式。有没有办法通过终端读取它们,以便我可以将文本保存为文本文件?
谢谢!
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。但它没有任何效果。可能是我没有正确使用它。
能否请你帮忙?
xml - 是否有将 Emma XML 报告转换为 Cobertura XML 格式的工具?
我使用的代码覆盖工具只能生成 Emma XML 报告,而我需要的是 Cobertura 或 gcov 格式。是否已经存在一些用于进行转换的工具?如果没有,恐怕我必须自己做。
c - (a && b) 语句中有多少个分支?根据 gcov:4
我用“gcc -fprofile-arcs -ftest-coverage test.c”编译了以下程序:
运行程序后,调用“gcov -bc test.c”报告至少有 4 个分支中的 50% 被占用一次。为什么 gcov 说程序有四个分支,而不是两个?运行以下程序后,gcov 正确报告 50% 的 2 个分支至少被占用一次: