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

c++ - gcov 在添加 -rdynamic 标志后停止生成 gcda 文件(通过 gdb 调用 __gcov_flush())

我在 C++ 中有一些服务器(从构建系统获取的命令):

因为它是守护进程,我用信号停止它,但在kill $PID我使用gdb之前强制转储 gcov 数据:

其中gcov/dumpGcovData的内容:

我知道链接应该是这样,-lgcov但因为它是以这种方式工作的,所以我没有在构建系统中更改它。问题是在添加-rdynamic标志之后发生的(没有该标志它可以正常工作)。

0 投票
2 回答
12135 浏览

gcc - 将 libtool 与 gcov 一起使用时,“DSO 引用了隐藏符号‘atexit’”

我有一个 C++ 项目,它使用 GNU Autotools 构建脚本和 libtool 进行链接。最近,我通过确保

..分别包含在我的CFLAGSLDFLAGS中。在使用 g++-4.2(由 homebrew 安装)的 OS X 10.7.4 上,一切正常。

在使用 g++ 4.6.3 的 Ubuntu 12.04 上,libtool 无法链接我的一项测试:

如何修复我在 ubuntu/g++ 4.6 上的构建?

0 投票
1 回答
1564 浏览

cmake - CMake/CTest & gcovr:文件扩展名?

在使用带有标志 --coverage 的 CMake 编译并运行我的 boost 单元测试程序后,将创建扩展名为 .cpp.gcda 和 .cpp.gcno 的文件。如果我然后运行 ​​gcovr 它声称它找不到 .gcno 文件(错误消息“.gcno:无法打开图形文件”)。我可能会移动所有输出文件,但这真的很尴尬/愚蠢。

其他人的相关问题可以通过使用 CTest 来解决,但是当我使用 Jenkins 时,我想坚持使用 gcovr 并使用 cobertura xml 输出。

附言。也许我应该简单地问:我应该如何将 CMake 与 gcovr 结合起来?

0 投票
1 回答
459 浏览

android - Android/SQLite - 文件的存储位置

我正在测试一个在 Android API 中运行 SQLite 方法的 Android 应用程序。我想获得 Android 开源项目 (AOSP) 中 SQLite 代码的代码覆盖率,并且我将其设置为运行 G-Cov 并在运行测试时保存该覆盖率信息。但是,我不知道这个覆盖信息存储在哪里。我以为它会在 中data/data/package-name,但我什么也没看到,而且我无法成功地将我的所有文件从 Android 模拟器中拉出。

有谁知道这个文件将存储在哪里?我不确定它是存储在 SQLite 中还是在模拟器上(这是我假设的,因为我在 SQLite 目录中没有看到它)。

谢谢。

编辑:具体来说,我正在寻找 *.gcno 和 *.gcda 文件。

编辑:现在我认为他们必须在模拟器上的共享库中,尽管在文件资源管理器中(我使用带有 ADT 的 Eclipse Juno),我看不到任何接近/lib/*并且/data/data/package-name/lib是空的。有谁知道那个位置可能在哪里?

0 投票
2 回答
656 浏览

c - 如何防止 Waf 重命名目标文件?

我正在使用 Waf 构建一个 C 项目并gcov具有一些测试代码覆盖率。但是,Waf以从源文件gcc生成的方式调用,这在搜索生成的文件时会造成混淆:foo.c.1.ofoo.cgcov

幸运的是,gcov具有-o可以指定相应目标文件的选项。尽管如此,这并不方便,并且执行lcov仍然失败。因此,我的问题是:

  1. 为什么 Waf 重命名目标文件?
  2. 如何禁用此行为或...
  3. 如何gcov/如何lcov解决这个问题?
0 投票
1 回答
269 浏览

ios5 - 总执行行数 gcov

我从代码覆盖率开始衡量我的测试有多好。我已经编译了所有程序以使用 gcov,并且我还有 .gcda 和 .gcno 文件。

如果我执行类似:“gcov --branch-probabilities --no-output mySourceFile.m”的结果,我会得到执行的行数,执行的分支......但是从一个文件中,我需要同样的措施,但是从我的整个项目。反正有这样做吗?

谢谢!

0 投票
1 回答
2192 浏览

gcc - 如何在没有优化的情况下将 gcov 与 gcc 一起使用?

我有一个这样的测试代码:

我添加了编译标志:-fprofile-arcs -ftest-coverage提供覆盖数据。

我写了这样的测试代码:

我使用 lcov 生成了一个 html 报告,它说else分支return (n - 21) * 2已执行,所以我得到了 100% 的行覆盖率。这不是真的

我google了一下,发现就是因为这个——gcc优化可以通过将一些简单的代码行与其他行组合来消除它们,但是如果我不应该使用-fprofile-arcs -ftest-coverage标志,我应该如何生成覆盖数据?

顺便说一句,我正在使用 netbeans 和 cygwin 进行单元测试,我不认为手动调用gcovmakefile 或脚本对我有好处。

仅供参考,我正在使用 lcov,如下所示:

0 投票
1 回答
1292 浏览

code-coverage - lcov 问题生成输出文件

我一直在尝试获取我一直在使用 lcov 运行的一些测试用例的代码覆盖率。

但是,当我跑步时

我收到警告

geninfo:警告:在 .bb 文件中找不到 test.c.gcov 的条目,正在跳过文件!

如果我直接在 test.c 上运行 gcov,我可以生成一个成功显示利用率的 gcov 输出。

我是代码覆盖的新手。我们将不胜感激任何解决此问题的帮助。

0 投票
1 回答
1430 浏览

gcc - gcc 3.23 中缺少 libgcov.a

由于某些原因我必须使用旧版本的 gcc,gcc2.96 或 gcc 3.23 使用相同的,我需要对一些代码执行代码覆盖率分析。

但是,当我尝试使用-lgcov选项执行链接时,我得到

/usr/bin/ld: 找不到 -lgcov

我发现我libgcov.a在 /usr/lib 中没有。但是我的理解是 libgcov 通常在安装 gcc 时自动安装。

任何有关如何解决此问题的建议将不胜感激

0 投票
3 回答
16623 浏览

c - gcov 内存不足/版本不匹配?

只是试图让 gcov 启动并运行,得到以下错误:

我正在使用 clang/profile_rt 来生成 gcov 需要的文件,我假设这可能与它有关。不过,它正在我的另一台计算机上运行,​​所以我认为它可以以某种方式修复。