Clang代码覆盖无效输出

时间:2013-07-20 02:40:52

标签: clang code-coverage clang++

所以我按照这些说明http://clang.llvm.org/get_started.html检查并建立了铿锵声干线。我可以使用--coverage构建我的二进制文件并运行它来获取.gcno和.gcda文件,但是当我运行lcov时,我得到“GENINFO:...达到意外的文件结尾”。

现在我被困住了,来到SO寻求帮助:)

我正在使用Ubuntu 13.04并编写c ++ 11,以防万一有所作为。

2 个答案:

答案 0 :(得分:1)

我在Ubuntu 13.04上与lcov铿锵有同样的问题。 这是在多个Ubuntu设置上为我工作的解决方案。

  1. 你会发现Ubuntu上有两个版本的gcov。 gcov-4.6.4& gcov的-4.7.3。默认情况下,gcov链接设置为gcov-4.7.3。将其更改为gcov-4.6.4
  2. 此外,使用lcov版本1.10而不是apt-get install
  3. 提供的版本

    这应生成代码覆盖率报告。

    编辑:我的是从Ubuntu 12.04升级到13.04。以防你没有看到两个版本的gcov。

答案 1 :(得分:0)

只是总结了@Himanshu已经共享的答案的步骤,以防有人正在寻找具体的解决方法:

安装gcc 4.6

nix-copy-closure

我找不到开箱即用的locv 1.10版本,所以我自己编译了它:

sudo apt-get-install -y gcc-4.6

git clone https://github.com/linux-test-project/lcov.git

使用发布了lcov 1.10版本的提交作为基础切换到新分支

cd lcov

编译lcov

git checkout -b 1_10 b5c1bdd

确认已安装的lcov为1.10

sudo make install

在所有这些内容就绪后,使用命令:

lcov --version

这避免了修改系统上默认lcov --gcov-tool /usr/bin/gcov-4.6 --capture -d gcov_data/ -o gcov_data/coverage.info的链接。

然后生成视觉覆盖文件

gcov

其中genhtml -o gcov_data/html gcov_data/coverage.info是包含gcov_datagcno文件的文件夹。