问题标签 [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 回答
901 浏览

gcc - 在 gcc 构建中禁用 gcov

任何人都知道如何在制作 GCC 时告诉它不要构建 gcov?它给我的目标(powerpc-wrs-vxworks)带来了很多错误。

0 投票
6 回答
3608 浏览

sed - 文件中的 DOS 到 UNIX 路径替换

我有一个包含这种路径的文件:

我想得到以下文件:

请注意,不应修改不匹配的路径。

我知道如何使用 sed 为固定数量的子目录执行此操作,但是可变数量给我带来了麻烦。实际上,我将不得不使用许多s/x/y/表达式(与最大深度一样多......不是很优雅)。

可能是用awk,但这种魔法超出了我的技能。

仅供参考,我需要这个技巧来纠正 cygwin 平台上的一些 gcov 二进制文件。


我正在处理二进制文件;因此,我可能有以下类型的数据:

应该翻译为:

第一个\不能翻译,尽管它在同一行。

但是,我刚刚.gcno在编辑此文本时检查了我的文件,看起来所有路径的两侧都带有零,因此下面的大多数答案都应该适合。

0 投票
3 回答
8104 浏览

c++ - 是否可以使用 gcov 测量功能覆盖率?

目前,我们将 gcov 与我们的 Linux C++ 应用程序测试套件一起使用,它在测量线路覆盖率方面做得很好。

gcov 除了线路覆盖率之外还能生成函数/方法覆盖率报告吗?

查看 gcov 接受的参数,我认为这是不可能的,但我可能会遗漏一些东西。或者,可能还有其他工具可以从 gcc 生成的统计信息中生成函数/方法覆盖率报告吗?

更新:函数/方法覆盖率是指在测试期间执行的函数的百分比。

0 投票
8 回答
54592 浏览

gcc - gcov 符号在哪里?

我正在尝试使用 gcov 编译一个简单的应用程序并收到以下链接错误:

我似乎无法找到丢失符号的位置。gcov 存在于运行 gcc 版本 4.1.2 的机器上

有任何想法吗?谢谢。

编辑时:

将 gcov 与由一个 .c 文件组成的应用程序一起使用时,一切似乎都运行良好。当我有多个 .c 文件(因此有多个 .o 文件)时,我遇到了上述问题。

编译步骤如下所示:

0 投票
3 回答
6010 浏览

c++ - 为什么 gcov 报告一个使用良好的类的头文件覆盖率为 0%?

我第一次尝试使用gcov测量测试覆盖率。现在我已经过了最初的学习曲线,一切似乎都很顺利,除了一点点障碍。我希望这归结为我缺乏理解,所以我希望熟悉 gcov 的人可以解释发生了什么。

问题是我有一个特定的头文件显示 0% 的覆盖率。但是,该标头中唯一的内容是一个使用良好的类的类声明。

此外,该类的实现文件显示了 100% 的覆盖率,并且我可以指出 5 个不同的测试,我知道在这些测试中该类已成功实例化。

那么为什么 gcov 会报告课程的 0% 覆盖率,我该如何解决呢?

- 编辑 -

正如 lacqui 在下面指出的,如果标头没有可执行代码,则不应将其包含在覆盖率计算中。事实上,在我所有的类中,那个特定的头文件是 gcov 试图为其生成覆盖信息的唯一一个。

我已经与其他头文件进行了逐行比较,我发现最大的不同是这个特定的头文件没有显式的构造函数或析构函数,而其他头文件有。为了尽量减少文件之间的差异,我在问题类中添加了一个显式的 ctor 和 dtor。然而,这并没有什么不同。

0 投票
3 回答
27388 浏览

code-coverage - 有没有办法将 lcov 代码覆盖率报告集中到一个或两个目录?

我最近开始使用 lcov 来可视化我的代码覆盖率。这是一个很棒的工具。

我注意到的一件事是,它会为我正在使用的所有文件生成代码覆盖率报告——包括那些我不感兴趣的文件。例如,它会为我提供 boost 和 mysql++ 文件的代码覆盖率报告。

有没有一种简单的方法可以强制 lcov 只为特定文件生成覆盖率报告?

我尝试过使用 -k 参数,如下所示:

(这意味着我只想要“include”和“src”目录的覆盖文件。)

但是,这似乎不起作用。该报告仍然向我显示所有无关文件。任何建议都非常感谢。谢谢!

0 投票
0 回答
591 浏览

c - Gcov 报告意外的覆盖结果

我对库进行了一些更改,以使其与项目保持一致。我进行了测试,一切都通过了,但覆盖率不再是 100%。我调查并看到代码执行只是没有报告。但我不知道为什么 gcov 在执行时不报告该行的覆盖率。

这是代码:

这是测试:

这是覆盖结果:

在执行之前添加打印return 1;。它不会得到覆盖,但return 1现在会有覆盖。有任何想法吗?除了手册页,我找不到任何东西。

编辑:从评论中你可以看到我没有透露所有内容。我在这个问题上取得了一些进展。其他一些测试其他功能会导致封面在运行时消失。仅运行测试可以PreviouslyEncountered100% 覆盖该功能。运行其他测试会重置它。

0 投票
1 回答
1447 浏览

code-coverage - gcov 是否给出汇编语言代码的代码覆盖率分析

我有一个应用程序,我在 Linux 主机上使用 gcc 为 ARM 目标处理器构建。我在我拥有的 ARM 开发板上执行这个生成的 arm 可执行文件。我想做一些代码覆盖率分析:

  1. 如果我的构建环境中有 ARM 汇编源文件,gcov 会显示代码覆盖率吗?
  2. 如果我的构建环境有一些 X86 汇编源文件,那么 gcov 会显示代码覆盖率数据吗?

谢谢你。-广告。

0 投票
5 回答
7530 浏览

cocoa - 为什么 gcov 不报告我的单元测试涵盖的任何行?

我在 10.6 上使用 Xcode 3.2,带有 gcov 的出厂版本和默认的 GCC 编译器(均为 4.2.1 版本)。我创建了一个依赖 Cocoa 单元测试包,该包被注入到我的应用程序中,并遵循 Apple 的关于设置 gcov-instrumented 构建配置的文档- 基于未启用任何编译器优化的调试配置。

当我使用这种“Gcov-instrumented”配置构建测试包时,应用程序启动并且测试被注入并运行。覆盖统计文件也在以下位置生成:

build/<AppTarget>.build/Gcov-instrumented/<AppTarget>.build/Objects-normal/x86_64/<object>.gcda

build/<AppTarget>.build/Gcov-instrumented/<AppTarget>.build/Objects-normal/x86_64/<object>.gcno

到现在为止还挺好。我知道测试确实在运行,因为如果我插入失败,那么测试套件会按预期失败。不幸的是,gcov 报告说测试没有覆盖任何对象行!每一行都报告为 0 覆盖率。我在此处和 Apple 邮件列表档案中进行了搜索,但找不到任何有类似问题的人。我希望我错过了一些东西 - 但它是什么?

0 投票
1 回答
8640 浏览

gcc - 可以使 gcc/gcov 将覆盖率统计信息输出到源文件夹以外的位置吗?

当使用带有 -fprofile-arcs 和 -ftest-coverage 的 gcc 时,当生成的可执行文件终止时,它会尝试在与用于编译可执行文件的 .o 文件相同的位置创建 .gcda 输出文件。当我在与我构建的机器不同的机器上运行时,这很不方便——有没有办法改变这种行为?