gcov

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

我使用 gcov 来测试代码覆盖率,但是当涉及到模板化的 c++ 代码时,它就不能很好地工作了。我广泛使用 boost::spirit,而 gcov 似乎只是忽略了模板化的精神代码。 我还想知道是否有一个覆盖工具来显示线程如何相互交互,精确定位可能的分支/竞争条件/实际执行的执行流程。 ... »

c++

Libtool 为对象添加前缀,但 gcov 要求它们不带前缀

我需要使用gcov 在我正在处理的共享库上执行一些测试覆盖率。 问题是libtool 将目标文件从my-name.c 重命名为libmylib_la-my-name.lo,而gcov 无法处理该转换。每次运行都会产生错误cannot open notes file。 如果我在构建 gcov 后手动将 my-name.c 重命名为 libmylib_la-my-name.c 工作正常,那么除了文... »

c

为多个 cpp 文件生成 GCOV 报告

我在一个文件夹中有 3 个文件。 one.cpp、one.hpp 和 main.cpp。 one.hpp 有一个类声明。 one.cpp 在同一命名空间下的类中定义了函数。我从 main 中的类调用函数,并在 main 中包含 one.hpp。如何使用 gcov 编译和运行所有这些文件以生成覆盖率? 我尝试生成单独的目标文件并创建一个可执行文件。没有工作 ... »

c++

在库中使用 __gcov_flush 不会强制其他模块生成 .gcda 文件

最近我一直在尝试使用 gcc/gcov 对 C++ 项目进行代码覆盖测试。该项目由它的主要模块和几个.so库组成,这些都应该被纳入衡量。 我已经用 gcc 编译了所有带有 --coverage 参数的模块,并将它们保存在它们生成的地方,以及相应的 .gcno 标记文件。在正常执行和正常退出后,可以正确生成 .gcda 文件。 问题是,程序应该是一个没有中断或终止的服务,并且不允许在主模块中插入任... »

c++

override_version 中的内部错误,位于 ../../gold/resolve.cc:61?

我正在尝试在 yocto-project 中使用 CFLAGS 和 LDFLAGS 编译 qtbase 配方。我在 qtbase 配方中添加了以下几行。 CFLAGS 和 CPPFLAGS 用于添加代码检测以查找代码覆盖率。 CFLAGS += "-fprofile-arcs -ftest-coverage" CPPFLAGS += "-fprofile-arcs -ftest-coverag... »

gcov 与 CMake 使用单独的构建目录

我正在努力获取 gcov 的覆盖信息。编译和链接期间没有错误,但是当我运行可执行文件时,没有生成覆盖数据。 我正在使用带有单独构建目录的 CMake,以这种方式将标志传递给编译器和链接器: add_definitions(--coverage) set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " --coverage") 可执行文... »

c++

是否可以将来自两个可执行文件的覆盖率数据与 gcov/gcovr 合并?

在一个项目中,我在三个不同的可执行文件上运行测试用例,并使用不同的选项进行编译。根据选项,是否采用某些代码路径。现在,我只使用一个可执行文件的覆盖率数据。 我正在使用 gcovr 生成一个 XML,然后由 Sonar 解析: gcovr -x -b -r . --object-directory=debug/test > coverage_report.xml 我有三组 gcda ... »

在 Eclipse 上使用 GCov 时出现字符串命令错误

您好,我正在尝试在 Eclipse 上使用 Gcov。构建我的项目然后右键单击我的项目 -> 分析工具 -> 分析代码覆盖率。我收到以下错误: 无法检索数据 gcov 数据。 'strings' 命令是必需的,但未找到。请安装包含该命令的 minGW 或 Cygwin 等软件包并更新您的默认路径。 我已经安装了 minGW 并且它的路径链接到项目... »

c

在检测映像上运行功能测试用例时不生成 gcda 文件

我正在尝试为 C 文件(Yocto 项目)生成覆盖范围。 所以,我在大多数可用模块的 Makefile.am 中添加了 gcov 标志 "-g -O0 --coverage"。 它在编译每个带有覆盖标志的模块期间生成“.gcno”文件。 我已经从所有这些模块中生成了一个图像并将其加载到测试设备中并运行了功能测试用例。 我可以使用正在运行测试设备的进程中的字符串命令找到“gcda”文件的路径... »

c

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

其他人报告无法generate code coverage with XCode 4,但我发现我不仅不能在 XCode 4 中执行此操作,甚至使用命令行中的简单玩具程序也无法执行此操作。我遵循了here 和here 给出的示例,这导致我创建了这个 cov.c 文件: #include <stdio.h> int main (void) { int i; for (i = 1... »

cmocka malloc 测试OOM和gcov

我很难使用 cmocka、测试 malloc 是否失败(模拟)以及使用 gcov 来找到一个小问题的答案 关于 cmocka+gcov 的更新:我注意到在我的 cmocka 测试中模拟一个函数后,我会立即得到空的 gcda 文件。为什么?谷歌搜索 cmocka 和 gcov 给出了人们谈论将两者结合使用的结果。似乎大多数人都在使用 CMake,我稍后会看到,但应该没有(我能想到的)需要我使用 c... »

如何让 XCode4 找到 libgcov.a

我一直在构建一个静态库以在多个 iOS 项目之间共享,并且我想使用 gcov(或任何代码覆盖率分析工具)来告诉我我缺少测试的地方。但是,当我按照以下说明启用 gcov 时:http://supermegaultragroovy.com/blog/2005/11/03/unit-testing-and-code-coverage-with-xcode/ 我从 Libtool 收到此错误: /D... »

ios

gcov 报告仅标头类的错误结果

之前已经问过很多类似的问题了: Getting useful GCov results for header-only libraries Why does gcov report 0% coverage on a header file for a well used class? gcov is not generating coverage information for header ... »

c++

bash:从 gcov 报告中提取执行的行号

gcov 是一个 GNU 工具链实用程序,可生成代码覆盖率报告(参见 documentation),格式如下: -: 0:Source:../../../edg/attribute.c -: 0:Graph:tmp.gcno -: 0:Data:tmp.gcda -: 0:Runs:1 -: 0:Programs:1 ... »

将 lcov 与 gcc-8 一起使用

我正在尝试确定我的测试覆盖率。为此,我使用更新版本的 gcc 编译我的程序: CC=/usr/local/gcc8/bin/gcc FC=/usr/local/gcc8/bin/gfortran ./configure.sh -external cmake -d 使用--coverage 选项编译后,我运行我的测试,这将创建*.gcda、*.gcno 和*.o.provides.buil... »

使用 gcov 忽略或排除外部库中的代码

我正在开发一个使用几个 boost 库的项目。在查看我们的测试报告时,我们发现测试覆盖率信息有时确实适合我们的源代码。我能够追踪到 boost::range。我认为这是因为库中的一些静态初始化,虽然我不能说更具体的。 基本上,如果您使用gcc --coverage 编译以下代码,运行它并使用gcov -b 打印覆盖率报告,将会有四个额外的分支和一个额外的行,我想忽略它们。 #include &... »

c++