问题标签 [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 投票
5 回答
15048 浏览

c - gcov:无法打开图形文件

我正在尝试使用 gcov。我有这个简单的文件 ac:

所以我愿意

我得到

难道我做错了什么?我在 Mac OS X Lion 下。

0 投票
1 回答
4228 浏览

objective-c - 了解 gcov 文件中的分支

我试图了解 gcov 工具的输出。不带选项运行它是有道理的,但我想尝试了解分支覆盖选项。不幸的是,很难理解这些分支做了什么以及为什么不使用它们。下面是一个方法的输出(使用最新的 LLVM/Clang 构建编译)。

我已经通过这个运行了 5 次测试,传入 nil、一个空数组、一个包含 1 个对象的数组、一个包含 2 个对象的数组和一个包含 4 个对象的数组。我可以猜到,在第一种情况下,分支 1 的意思是“进入循环”,但我不知道分支 0 是什么。在第二种情况下,分支 0 似乎再次循环,分支 1 似乎结束循环,分支 3 继续/退出循环,但我不知道分支 2 是什么或为什么/何时执行。

如果有人知道如何破译分支信息,或者知道任何有关这一切的详细文档,我将不胜感激。

0 投票
3 回答
11617 浏览

c++ - gcov 报告的析构函数中的分支是什么?

当我使用 gcov 测量 C++ 代码的测试覆盖率时,它会报告析构函数中的分支。

当我在启用分支概率 (-b) 的情况下运行 gcov 时,我得到以下输出。

困扰我的部分是“至少服用一次:2 的 50.00%”。

生成的 .gcov 文件提供了更多详细信息。

请注意“分支 0 采用 0% (fallthrough)”这一行。

是什么导致了这个分支,我需要在代码中做什么才能在此处获得 100%?

  • g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
  • gcov (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
0 投票
1 回答
182 浏览

c - 代码覆盖率——哪个运行覆盖了哪些代码?

POC:https ://gist.github.com/1197309

我想确定这三个运行中的哪一个./prime./prime 0./prime 1涵盖了哪些代码并将其很好地显示在 HTML 报告中。

这可能以一种简单的方式吗?怎么做?其他工具都可以,只要它们在带有 gcc 的 linux 上工作即可。

谢谢。

注意:我更喜欢该要点的工作分支 :-) 我使用的是“常规”开发人员 Linux 发行版,所以不用担心这些工具。

欢迎任何其他改进。

0 投票
2 回答
9625 浏览

c - 使用 gcov 进行交叉分析,但 GCOV_PREFIX 和 GCOV_PREFIX_STRIP 被忽略

我想使用 GCOV 进行代码覆盖,但测试将在另一台机器上运行。因此,可执行文件中 .gcda 文件的硬连线路径将不起作用。

为了更改这个默认目录,我可以使用 GCOV_PREFIX 和 GCOV_PREFIX_STRIP 环境变量,正如这里所说。

这是我使用的命令:

路径保持不变。有人有这方面的经验吗?

0 投票
5 回答
7498 浏览

c++ - 与模板一起使用的最佳 C++ 代码覆盖率工具是什么?

我已经使用 gcov 来测试代码覆盖率,但是当涉及到模板化的 c++ 代码时,它并不能很好地工作。我广泛使用 boost::spirit,而 gcov 似乎只是忽略了模板化的精神代码。

另外我想知道是否有一个覆盖工具来显示线程如何相互交互,精确定位实际执行的可能的分支/竞争条件/执行流。

0 投票
1 回答
1270 浏览

c - lcov : 多次执行的源代码覆盖率

  1. 我创建了简单的 hello word cpp 应用程序。
  2. 通过传递 gcc --coverage 标志编译它
  3. 执行了可执行文件
  4. 通过调用生成的覆盖率
    lcov --directory . --capture --output-file ic.info
  5. 通过 genhtml 生成基于 html 的报告
    genhtml -o html/ ic.info

现在的问题。无论我运行多少次可执行文件,我总是得到相同的结果,即相同的行和函数覆盖率。它是否应该增加每次执行的行覆盖率?我有什么问题吗?

如果lcov只为一次执行生成覆盖率,那么我如何为我已经完成的所有执行生成覆盖率?

0 投票
1 回答
1070 浏览

macos - 为 Mac 应用程序获得 0 gcov 覆盖率

我已经完成了以下操作,但我的 .app 的 gcov 覆盖率仍然为 0%。这是我正在做的事情:

  1. 我正在使用 Xcode 3.2.6、GCC 4.2 并且在 Mac OSX 10.6 上。
  2. 我复制了 Debug 配置并将其称为 Gcov。在 Gcov 配置和应用程序目标中,我设置了以下构建配置:
    • 勾选“生成测试覆盖文件”
    • 检查“仪器程序流程”
    • 将“-lgcov”添加到“其他链接器标志”
  3. 我做了一个“全部清理”,然后我做了一个“构建并运行”。
  4. 一旦构建成功构建,它就会启动应用程序。我在应用程序中做了一些快速的事情并退出了。
  5. 当我查看 .gcda/.gcno 时,我看到它们已经生成,事实上,每次我启动应用程序并在应用程序中执行其他操作时,我都会看到 .gcda/.gcno 文件确实在更新。但是,使用 gcov/gcovr 查看 .gcda/.gcno 我一直得到 0 覆盖率。

关于我做错了什么的任何想法?谢谢你的帮助。

0 投票
2 回答
1753 浏览

gcc - 无法生成 *.c.gcov 文件

我有以下结构:

gcc 编译选项中提到了and-fprofile-arcs选项。-ftest-coverage它成功生成a.gcdaa.gcno文件。并且当给出以下选项时gcov a.c,它会正确地为执行的行提供统计信息。

但它无法a.c.gcov正确生成文件,它只包含/* EOF */.

它抛出以下消息:

请让我知道生成a.c.gcov文件。

0 投票
2 回答
2325 浏览

ios5 - 代码覆盖率 GCov 不适用于 XCode 4.2 和 iOS SDK 5

我一直在尝试让 GCov 在带有 iOS SDK 5.0 的 Lion 上使用 Xcode 4.2Build 4D199 无济于事。有没有人有这方面的运气?我正在使用 Google Tools For Mac 进行单元测试,并且已在 libprofile_rt.dylib 中链接并添加了:

如这里的封面故事页面所示http://code.google.com/p/coverstory/wiki/UsingCoverstory 但是当我找到 . -name *.gcda" 我空了。我错过了什么?