Clang Code Coverage Invalid Output

老子叫甜甜 提交于 2019-12-07 07:02:58

问题


So I've checked out and built the clang trunk by following these instructions http://clang.llvm.org/get_started.html. I can build my binary with --coverage and run it to get the .gcno and .gcda files, but when I run lcov I get "GENINFO: ... reached unexpected end of file".

Now I'm stuck and came to SO to look for help :)

I'm working with Ubuntu 13.04 and writing c++11, just in case that makes a difference.


回答1:


I had the same problem with clang with lcov on Ubuntu 13.04. Here is the solution which worked for me on more than one Ubuntu setup.

  1. You will find there are two versions of gcov on Ubuntu. gcov-4.6.4 & gcov-4.7.3. By default the gcov link is set to gcov-4.7.3. Change that to gcov-4.6.4
  2. Furthermore, use lcov version 1.10 instead of what is available via apt-get install

This should generate the code coverage report.

EDIT: Mine was a upgrade from Ubuntu 12.04 to 13.04. Just in case you don't see two versions of gcov.




回答2:


Just summarising the steps for the answer already shared by @Himanshu in case somebody's looking for the exact steps to go about it:

Install gcc 4.6

sudo apt-get-install -y gcc-4.6

I couldn’t find locv 1.10 version out of the box so I compiled it myself:

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

cd lcov

Switch to a new branch with the commit that published lcov 1.10 version as base

git checkout -b 1_10 b5c1bdd

Compile lcov

sudo make install

Confirm that lcov installed is 1.10

lcov --version

With all these things in place, use the command:

lcov --gcov-tool /usr/bin/gcov-4.6 --capture -d gcov_data/ -o gcov_data/coverage.info

This avoids tinkering with the link of the default gcov on the system.

Then generate the visual coverage file

genhtml -o gcov_data/html gcov_data/coverage.info

where gcov_data is the folder containing the gcno and gcda files.



来源:https://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!