Clang代码覆盖率无效输出



所以我按照以下说明检查并构建了clang主干http://clang.llvm.org/get_started.html.我可以用--coverage构建我的二进制文件,并运行它来获得.gcno和.gcda文件,但当我运行lcov时,我会得到"GENINFO:…到达了意外的文件结尾"。

现在我陷入困境,来到SO寻求帮助:)

我正在使用Ubuntu 13.04并编写c++11,以防这会有所不同。

我在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安装提供的版本

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

编辑:我的是从Ubuntu 12.04升级到13.04。万一你看不到两个版本的gcov。

只是总结@Himanshu已经分享的答案的步骤,以防有人在寻找确切的步骤:

安装gcc 4.6

sudo apt-get-install -y gcc-4.6

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

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

cd lcov

切换到一个新的分支,提交发布lcov 1.10版本作为基础

git checkout -b 1_10 b5c1bdd

编译lcov

sudo make install

确认安装的lcov是1.10

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

其中CCD_ 10是包含CCD_ 11和CCD_。

最新更新