gcov内存不足/版本不匹配?

时间:2012-09-17 06:35:15

标签: c code-coverage clang gcov

只是尝试启动并运行gcov,收到以下错误:

$ gcov src/main.c -o build
build/main.gcno:version '404*', prefer '407*'

gcov: out of memory allocating 14819216480 bytes after a total of 135168 bytes

我正在使用clang / profile_rt生成gcov需要的文件,我假设它可能与它有关。但它正在我的另一台计算机上工作,所以我认为它可以以某种方式修复。

3 个答案:

答案 0 :(得分:20)

我的机器上遇到了同样的问题。

确保您的gcov版本和您使用的编译器匹配。

在使用g ++ - 4.7进行编译时我遇到了这个问题,而且我有gcov 4.6。

在我的机器上sudo apt-get install ggcov为我提供了最新版本。然后,我必须sudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcov在正确的位置制作gcov点。

答案 1 :(得分:8)

我遇到了同样的问题,我安装了正确的版本。我的解决方案:从您编译的任何子目录中删除所有*.gcda文件。我的make clean没有涵盖它们。

答案 2 :(得分:8)

我的问题是我更新了gccg++以便我可以使用更新的编译器,但忘记更新gcov版本意味着运行“gcov”或“lcov”获取了gcov之前的编译器版本。

所以基本上运行g++ --versiongcov --version应该产生相同的版本号,否则事情将会非常错误。

以下是我更新编译器版本的方法,最后一行是我所缺少的,以使其全部正常工作。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 90
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 90