问题标签 [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.
unit-testing - GCOV 的代码覆盖率无法生成 .gcda 文件
我想用 GCOV 获得代码覆盖率,我通过 http://developer.apple.com/library/mac/#qa/qa2007/qa1514.html设置构建设置
- 将“-lgcov”添加到“其他链接器标志”
- 检查“仪器程序流程”
- 检查“生成测试覆盖文件”
但我无法生成 .gcda 文件,有人可以帮忙吗?
iphone - iPhone:无法让模拟器生成 .gcda 分析数据文件
我正在尝试使用 iPhone 模拟器分析我的代码。我启用了Generate Test Coverage File和Instrument Program Flow并将-lgcov添加到链接器标志。根据我读过的所有内容,这应该是我在设置方面需要做的所有事情。
更新:生成测试覆盖文件触发-ftest-coverage标志,仪器程序流程触发-fprofile-arcs标志。我已经检查了构建日志,并且在编译时正在设置它们。
执行程序我可以看到.gcno文件出现在旁边.o编译代码在 build/.build/Debug-iphonesimulator/.build/Objects-normal/i386 目录下。
但是当我在模拟器中运行应用程序时,我没有看到任何*.gcda文件。
我的理解是这些文件包含来自检测的数据。但我在电脑上的任何地方都找不到它们。
我知道它们可以生成并出现在*.gcno文件旁边,因为我有一个旧的废弃的 buil 目录,其中确实有它们。我只是不知道我必须做什么才能让他们出现并记录跑步。
任何帮助表示赞赏。
c++ - C++ 使用 gcov 和 lcov 的问题?
我正在使用 ubuntu 10.1,g++ 编译器。
我试图在我的 C++ 项目中使用 gcov 和 lcov。我设法编译了 gcov:
没有错误或警告消息。接下来我尝试运行 gcov:
也很好。我也尝试运行我的程序:
然后再次运行 gcov,我的 main、user 和 game.cpp 现在显示了一些百分比。我想捕获数据,我在终端中输入:
但它给了我这个:
我在网上搜索,阅读 lcov 文档,我找不到答案。任何人都可以帮助我吗?
另外,我也无法打开main.gcda文件。(我尝试使用文本编辑器打开,它说一些字符编码问题,很多:UTF-8,Western(ISO-8859-1),Western(ISO-8859 -11) 等,但仍然无法打开和读取文件。
请帮帮我..有人吗??
编辑:
我承认,这是我的错误(我非常抱歉,“home/Projects/Game1”,大写“P”。)验证路径后,我收到了这个新错误:
testing - 使用 gcov 进行共享库覆盖率测试 [Linux/Fortran]
我正在尝试对共享库进行覆盖测试。我选择 gcov/lcov 是因为它是免费和开源的,这意味着我可以立即尝试(商业软件需要获得批准/购买,必须做出很多决定 - 它花费时间)。
情况如下 - 库 - 我们的产品,用 Fortran 编写,然后用于仿真软件(具体而言,来自 MSC.Software 的 ADAMS)。我可以使用 -fprofile-arcs -ftest-coverage 编译该库,如果 ADAMS 使用它,它可以正常工作。但是,不会创建 .gcda 文件。
有一个小的测试可执行文件来测试库的基本行为(方法的小子集)。如果我用覆盖测试开关编译这个可执行文件,我会得到可执行文件本身和库的 .gcda 文件。
问题是:如果使用该库的可执行文件未使用覆盖测试开关编译,是否可以为该库调用 gcov 测量?如果是,如何?
可以编写广泛的测试,但这几乎就像复制 ADAMS(或任何其他模拟包)一样。还是我选择了错误的覆盖测试工具,我应该转向商业产品?
先感谢您。
麦克风
ios - 如何让 XCode4 找到 libgcov.a
我一直在构建一个静态库以在多个 iOS 项目之间共享,并且我想使用 gcov(或任何代码覆盖率分析工具)来告诉我缺少测试的地方。但是,当我按照以下说明启用 gcov 时:http: //supermegaultragroovy.com/blog/2005/11/03/unit-testing-and-code-coverage-with-xcode/
我从 Libtool 收到此错误:
由于某种原因,XCode4 找不到 libgcov.a 文件。它在我系统的许多地方,但由于某种原因无法找到。我对 XCode 和基于 gcc 的编程相当陌生,所以我不确定如何解决这个问题,我的猜测是我只需要具体告诉它在哪里可以找到 libgcov.a 但我不确定如何去做。
hudson - 将 lcov 添加到 Hudson
对这里的哈德逊来说相当陌生。我想知道,如何将lcov与它集成?我如何将 tarball 安装到 Hudson 作业中?
unit-testing - gcov 用于大型项目(静态库,...)
我正在研究具有以下目录布局的大型项目:
编译后,-fprofile-arcs -ftest-coverage
我在 Build/MyTest 目录中执行 MyTest 应用程序。正如预期的那样,在 Build 目录中有 *.gcno 和 *.gcda 文件。在 MyTest 目录中运行 gcov 后,会生成不同的 *.gcov 文件,但不幸的是不是针对 MyA 和 MyB 中的所有内容,尽管在这两个库中调用了每个函数。尝试了不同的选项,但不知何故我无法使用这种布局创建有用的(意味着正确的)*.gcov 文件。
如果我将每个 cpp 复制到一个目录中并重复这些步骤,一切都会按预期工作,并且覆盖率分析是完美的。
gcov - 支持共享库代码覆盖的 gcov 版本
哪个版本的 gcov 支持共享库的代码覆盖?
c++ - 核心转储和 gcov 覆盖率报告
我正在对多线程程序进行压力测试并收集覆盖率。据我所知,当程序被 _exit() 或某些信号(如 SIGABRT、SIGSEGV 等)终止时,gcov 不会生成 .gcda 文件。
当程序崩溃时,core 文件由信号生成,而 gcov 覆盖数据不会生成。显然我可以处理信号并生成覆盖数据,但在这种情况下我无法生成核心转储文件。但我想同时生成核心转储和 gcov 数据文件来找出崩溃的原因。
我的问题是,有没有办法在没有信号的情况下生成核心转储,或者有没有办法在程序突然终止时生成 gcov 覆盖数据文件?
c++ - 在 C++ 代码中查找未实例化的模板
在 C++ 代码中查找未实例化模板的最佳方法是什么?
我有一个大量使用模板的代码库。当然,我们要确保测试覆盖率很高。对于所有使用过的代码,使用gcov
.
但是,未使用的模板被报告为不可执行gcov
。
经过一番谷歌搜索,似乎没有办法强制g++
为这些模板发出代码(这只是合乎逻辑的,编译器应该如何猜测任何类型?)似乎也没有办法让 gcov 识别未实例化的模板代码作为可运行代码。
有什么“开箱即用”的东西可以让我扩充 GCC-ftest-coverage -fprofile-arcs
仪器生成的文件吗?根据GCC 的 gcov 选项文档,将整个模板函数体标记为一个块可能就足够了,因为执行永远不会在那里结束。
编辑(背景信息):我正在开发一个只有标题的模板库。我的目标是找到未使用/未经测试的功能。
我知道代码覆盖率是有缺陷的,但是找到未实例化的代码是朝着更好地测试代码迈出的非常重要的一步。目前,我们将检查点宏放在每个函数的开头。在测试模式下,它们扩展为将一对插入(file, line)
到一组已通过检查点的全局代码。运行测试后,我们手动读取所有文件并将到达的检查点与所有可用检查点的集合进行比较。
查找未实例化的代码很重要,例如,由于不直观的 C++ 模板优先行为,可能会有读者甚至作者希望使用的死代码。