问题标签 [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.
c++ - gcov 在添加 -rdynamic 标志后停止生成 gcda 文件(通过 gdb 调用 __gcov_flush())
我在 C++ 中有一些服务器(从构建系统获取的命令):
因为它是守护进程,我用信号停止它,但在kill $PID
我使用gdb之前强制转储 gcov 数据:
其中gcov/dumpGcovData的内容:
我知道链接应该是这样,-lgcov
但因为它是以这种方式工作的,所以我没有在构建系统中更改它。问题是在添加-rdynamic
标志之后发生的(没有该标志它可以正常工作)。
gcc - 将 libtool 与 gcov 一起使用时,“DSO 引用了隐藏符号‘atexit’”
我有一个 C++ 项目,它使用 GNU Autotools 构建脚本和 libtool 进行链接。最近,我通过确保
..分别包含在我的CFLAGS
和LDFLAGS
中。在使用 g++-4.2(由 homebrew 安装)的 OS X 10.7.4 上,一切正常。
在使用 g++ 4.6.3 的 Ubuntu 12.04 上,libtool 无法链接我的一项测试:
如何修复我在 ubuntu/g++ 4.6 上的构建?
cmake - CMake/CTest & gcovr:文件扩展名?
在使用带有标志 --coverage 的 CMake 编译并运行我的 boost 单元测试程序后,将创建扩展名为 .cpp.gcda 和 .cpp.gcno 的文件。如果我然后运行 gcovr 它声称它找不到 .gcno 文件(错误消息“.gcno:无法打开图形文件”)。我可能会移动所有输出文件,但这真的很尴尬/愚蠢。
其他人的相关问题可以通过使用 CTest 来解决,但是当我使用 Jenkins 时,我想坚持使用 gcovr 并使用 cobertura xml 输出。
附言。也许我应该简单地问:我应该如何将 CMake 与 gcovr 结合起来?
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
是空的。有谁知道那个位置可能在哪里?
c - 如何防止 Waf 重命名目标文件?
我正在使用 Waf 构建一个 C 项目并gcov
具有一些测试代码覆盖率。但是,Waf以从源文件gcc
生成的方式调用,这在搜索生成的文件时会造成混淆:foo.c.1.o
foo.c
gcov
幸运的是,gcov
具有-o
可以指定相应目标文件的选项。尽管如此,这并不方便,并且执行lcov
仍然失败。因此,我的问题是:
- 为什么 Waf 重命名目标文件?
- 如何禁用此行为或...
- 如何
gcov
/如何lcov
解决这个问题?
ios5 - 总执行行数 gcov
我从代码覆盖率开始衡量我的测试有多好。我已经编译了所有程序以使用 gcov,并且我还有 .gcda 和 .gcno 文件。
如果我执行类似:“gcov --branch-probabilities --no-output mySourceFile.m”的结果,我会得到执行的行数,执行的分支......但是从一个文件中,我需要同样的措施,但是从我的整个项目。反正有这样做吗?
谢谢!
gcc - 如何在没有优化的情况下将 gcov 与 gcc 一起使用?
我有一个这样的测试代码:
我添加了编译标志:-fprofile-arcs -ftest-coverage
提供覆盖数据。
我写了这样的测试代码:
我使用 lcov 生成了一个 html 报告,它说else
分支return (n - 21) * 2
已执行,所以我得到了 100% 的行覆盖率。这不是真的
我google了一下,发现就是因为这个——gcc优化可以通过将一些简单的代码行与其他行组合来消除它们,但是如果我不应该使用-fprofile-arcs -ftest-coverage
标志,我应该如何生成覆盖数据?
顺便说一句,我正在使用 netbeans 和 cygwin 进行单元测试,我不认为手动调用gcov
makefile 或脚本对我有好处。
仅供参考,我正在使用 lcov,如下所示:
code-coverage - lcov 问题生成输出文件
我一直在尝试获取我一直在使用 lcov 运行的一些测试用例的代码覆盖率。
但是,当我跑步时
我收到警告
geninfo:警告:在 .bb 文件中找不到 test.c.gcov 的条目,正在跳过文件!
如果我直接在 test.c 上运行 gcov,我可以生成一个成功显示利用率的 gcov 输出。
我是代码覆盖的新手。我们将不胜感激任何解决此问题的帮助。
gcc - gcc 3.23 中缺少 libgcov.a
由于某些原因我必须使用旧版本的 gcc,gcc2.96 或 gcc 3.23 使用相同的,我需要对一些代码执行代码覆盖率分析。
但是,当我尝试使用-lgcov
选项执行链接时,我得到
/usr/bin/ld: 找不到 -lgcov
我发现我libgcov.a
在 /usr/lib 中没有。但是我的理解是 libgcov 通常在安装 gcc 时自动安装。
任何有关如何解决此问题的建议将不胜感激
c - gcov 内存不足/版本不匹配?
只是试图让 gcov 启动并运行,得到以下错误:
我正在使用 clang/profile_rt 来生成 gcov 需要的文件,我假设这可能与它有关。不过,它正在我的另一台计算机上运行,所以我认为它可以以某种方式修复。