问题标签 [lcov]

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 回答
4974 浏览

c - 使用 lcov 的源文件的代码覆盖率

我正在使用 lcov 和 genhtml 生成代码覆盖率报告。使用以下目录结构,我可以获取位于 tests/ 目录中的源文件的代码覆盖率,但无法获取 src/ 目录中 my_file.c 文件的代码覆盖率。

从测试目录调用 lcov 命令:

lcov -b . --directory objects/ -c -o ./coverage/app.info

0 投票
2 回答
10215 浏览

html - 寻找一种方法来排除 geninfo/genhtml 使用的文件

我们正在尝试使用 geninfo 和 genhtml(gcovr 的替代品,请参见此处)使用 gcov 提供的覆盖率生成 html 页面。

  • geninfo从 gcov 的 *.gcda 文件创建 lcov-tracefiles
  • genhtml从上述跟踪文件生成 html 文件

但是,最终结果不仅包括我们的代码,还包括来自 /usr/include 的文件。

有谁知道排除这些的方法?

我尝试查看手册页,但找不到任何内容http://linux.die.net/man/1/geninfo

0 投票
1 回答
1667 浏览

cygwin - cygwin lcov genhtml:错误:无法创建目录?

我正在执行以下命令,这导致以下错误。我对所有涉及的目录都有 chmod 777 。css 和图像文件已成功写入,但未生成 html 文件。我在做什么?

0 投票
1 回答
182 浏览

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

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

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

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

谢谢。

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

欢迎任何其他改进。

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 回答
368 浏览

gcov - 给-a选项时gcov冻结了吗?

当我做 gcov 。没有问题。但是,当我执行 gcov -a 时。gcov 冻结了。输出的最后几行是:

文件 '/usr/include/boost/archive/detail/iserializer.hpp' 执行的行数:78.18% of 55 /usr/include/boost/archive/detail/iserializer.hpp:creating 'iserializer.hpp.gcov'

文件 '/usr/include/boost/serialization/extended_type_info_typeid.hpp' 执行的行数:40.74% of 27 /usr/include/boost/serialization/extended_type_info_typeid.hpp:creating 'extended_type_info_typeid.hpp.gcov

你知道为什么会这样吗?我需要“-a”的原因是当我使用 lcov 时,它为 gcov 提供了该选项,我可以破解 geninfo 以忽略该选项,但我不想这样做,因为我最终会在公共系统上运行 lcov。

感谢您的任何投入!

0 投票
1 回答
10793 浏览

c++ - CMake 和 lcov:未找到 gcno 文件

我正在尝试获取基于 CMake 的项目(由多个目标组成)的代码覆盖率。

首先,我生成 gcno 文件:

*.gcno生成于

然后我运行生成*.gcna文件的测试

当我现在再次运行 lcov 时:

我收到以下错误:

当我手动将*.gcno文件移动到生成 *.gcda 的目录,它似乎可以工作。

谢谢你的帮助!!!

0 投票
3 回答
3758 浏览

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

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

到目前为止我所做的:-

我必须做的:-

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

问题:-

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

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

与 M3、M4、M5 相同。

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

提前致谢。

0 投票
2 回答
4399 浏览

cygwin - 让 lcov 在 Cygwin 上工作

我需要安装哪些 Cygwin 软件包才能让 lcov 在 Cygwin 上运行?

我尝试运行 lcov 并收到以下信息:找不到命令

感谢您的任何帮助。

PS我应该指出gcov确实有效。

0 投票
1 回答
1539 浏览

lcov - 使用 lcov 和 g++ 进行准确的函数计数

我正在使用 Ubuntu 12、g++ 和 lcov,后者安装了apt-get install lcov.

我正在成功编译并生成 html 报告genhtml。行覆盖信息看起来不错,但许多函数覆盖计数似乎很奇怪。例如,一个仅包含构造函数和虚拟析构函数的 C++ 类被 lcov 报告为具有 7 个函数。因此,如果我在会议期间同时打电话,我的覆盖率只有 2/7。

这是一个示例输出,它显示了一个具有一个永远不会被调用的函数的类。我无法弄清楚该功能是什么:

示例输出

任何人都可以解码损坏的函数名称,解释膨胀的函数计数,并建议如何解决问题吗?

提前致谢。

更新

好的,因为在下面回答了我最初的问题(见评论),我现在就如何防止这些幕后的 ctors 和 dtors 破坏我的函数覆盖率统计数据提出建议。如何将函数计数限制为我自己编写的那些函数?