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

embedded - 如何在嵌入式上进行代码覆盖

我为非 POSIX 嵌入式系统编写了一个项目,所以我不能使用 gcc 选项 --coverage (我没有读或写)。我还能做些什么来产生类似 gcov 的输出。我确实有输出功能。

0 投票
2 回答
2387 浏览

macos - Mac OS X Lion 和 XCode 4 / llvm-g++-4.2 没有代码覆盖

其他人报告说无法使用 XCode 4 生成代码覆盖率,但我发现我不仅不能在 XCode 4 中执行此操作,甚至使用命令行中的简单玩具程序也无法执行此操作。我按照此处此处给出的示例进行操作,这导致我创建了这个 cov.c 文件:

然后我使用以下命令来尝试生成代码覆盖率:

唉,在 obj 目录中不存在 cov.gcno 文件。事实上,我在这之后唯一的文件是:cov.c obj/cov.o bin/cov

此外,如果我输入nm bin/cov,我会得到以下信息:

这表明从未链接过 libgcov.a。如果我替换

和:

我得到完全相同的结果。

更多信息:

  • g++ --version产生:“i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.1.00)”
  • 我也尝试过使用 gcc(即 llvm-gcc)。
0 投票
0 回答
745 浏览

gcc - gcov 忽略标准库分支?

我正在尝试使用 gcov/lcov 为我的源代码测试套件生成报告。有没有办法告诉 gcov 忽略标准库产生的分支。例如,字符串流

此外,我在所有源文件中都使用命名空间。在文件末尾,gcov 会报告 thre are branch。那些树枝是从哪里来的?

非常感谢您的任何意见!

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 投票
1 回答
462 浏览

c - 在使用 perl 脚本测试 C 程序的情况下,如何使用 gcov 进行测试覆盖?

我目前正在研究 gcov,我需要学习 gcov 的指针。Perl 脚本被用于自动化测试,我需要使用 gcov 进行测试覆盖。除了 gcov 文档之外,我还应该注意哪些其他事项?我该如何进行?

0 投票
1 回答
285 浏览

ios - 尝试分析时,GENERIC_RELOC_SECTDIFF 缺少架构 i386 的以下对

我正在尝试对与 iOS 5.0 链接的 Snow Leopard (10.6) 上的 Xcode 4.2 项目进行分析(如 gcov 风格分析)。我已经打开 -fprofile-arcs -ftest-coverage 并且我正在链接 -lprofile_rt。使用 LLVM 3.0 编译。

我的目标是一个由单元测试包测试的静态库。

一切都编译得很好,但是在单元测试包的链接步骤中,我得到:

ld: in Foo/DerivedData/Foo/Build/Intermediates/Foo.build/Debug Profile-iphonesimulator/UnitTests.build/Objects-normal/i386/TestUtilities.o, in section _DATA,_const reloc 0: GENERIC_RELOC_SECTDIFF missing following pair for architecture i386

这是实际的链接步骤:

setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -bundle -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk "-LFoo/Build/Products/Debug Profile-iphonesimulator" -L/Developer/usr/lib "-FFoo/Build/Products/Debug Profile-iphonesimulator" -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -filelist "Foo/DerivedData/Foo/Build/Intermediates/Foo.build/Debug Profile-iphonesimulator/UnitTests.build/Objects-normal/i386/UnitTests.LinkFileList" -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -fprofile-arcs -ftest-coverage -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -lFoo -framework Foundation -framework SenTestingKit -lprofile_rt -o "Foo/DerivedData/Foo/Build/Products/Debug Profile-iphonesimulator/UnitTests.octest/UnitTests"

任何人有任何想法为什么我不能链接?

0 投票
1 回答
2977 浏览

c++ - 简单案例的 Gcovr 分支覆盖率

我开发了一个简单的例子来测试 gcovr 和 gcov:

以及用于生成覆盖率报告的脚本:

我使用 -b 选项获得了 80% 的覆盖率,它指向我在主块的最后一行。在我看来,这种情况是否应该是 100%?

0 投票
1 回答
1279 浏览

linux - gcov 过滤结果和文件

我正在使用带有 linux 工具的 eclipse indigo。其中一个工具是 gcov 的插件。我有一个项目是 statis lib(点一个文件)和另一个项目是一个单元测试,它与这个 lib 链接并调用它的方法。在这两个项目中,我添加了编译标志 -fprofile-arcs -ftest-coverage,在可执行项目中,我还添加了与 gcov lib (-lgcov) 的链接。

结果很好,但我得到了很多似乎属于系统而不是我的功能。比如 boost、basic_cstring 和其他非我的代码。

我想问我如何过滤所有不属于我的东西。我只对我编写的代码感兴趣,而不是 strcpy 在所有路径上运行。我可以做吗?

提前致谢!

0 投票
1 回答
209 浏览

macos - 带有通用二进制文件的 gcov

我正在尝试获取有关构建通用二进制文件的项目的一些代码覆盖率统计信息。但是,似乎没有生成 .gcno 文件。

一个例子:

但是在没有多个拱门的情况下编译是可行的:

谁能阐明为什么这不适用于胖二进制文件?它在任何地方都有记录吗?解决方法?