web-dev-qa-db-ja.com

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が必要とするファイルを生成していますが、それはそれと関係があるのではないかと思います。ただし、他のコンピューターでも動作しているので、なんとか修正できると思います。

20
Chris Bolton

自分のマシンでも同じ問題が発生しました。

Gcovのバージョンと使用するコンパイラが一致していることを確認してください。

G ++-4.7でコンパイルするときにこの正確な問題が発生し、gcov4.6が発生しました。

私のマシンではSudo apt-get install ggcov最新バージョンを入手しました。それから私はSudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcovgcovポイントを適切な場所に配置します。

20
Anthony Sottile

同じ問題が発生し、正しいバージョンがインストールされました。私の場合の解決策:コンパイルするサブディレクトリからすべての*.gcdaファイルを削除します。私のmake cleanはそれらをカバーしていませんでした。

8
B M

私の問題は、新しいコンパイラを使用できるように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
8
paulm