【问题标题】:gcov out of memory / mismatched version?gcov 内存不足/版本不匹配?
【发布时间】:2012-09-09 08:51:40
【问题描述】:

刚刚尝试启动并运行 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 需要的文件,我假设这可能与它有关。不过,它正在我的另一台计算机上运行,​​所以我认为它可以通过某种方式修复。

【问题讨论】:

    标签: c code-coverage clang gcov


    【解决方案1】:

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

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

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

    在我的机器上sudo apt-get install ggcov 为我提供了最新版本。然后我不得不sudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcov 让 gcov 指向正确的位置。

    【讨论】:

    • 感谢您的帮助!我通过简单地执行 gcov-4.7 而不是 gcov 解决了这个问题。如果我有动力,我想一个更优雅的方法将涉及使用更新替代方案。
    • 谢谢安东尼!并且ln -sf可以自动为你移除旧的gcov。
    • 谢谢@EricZ。更新:D
    【解决方案2】:

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

    所以基本上运行 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
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 谢谢。让我头疼了一阵子!
      猜你喜欢
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 2016-12-09
      • 2012-04-22
      • 2023-03-19
      • 2019-01-12
      相关资源
      最近更新 更多