2012-09-17 33 views
14

ちょうどアップし、次のエラーを取得し、実行しているgcovの取得しようとしている:私は必要gcovのファイルを生成するために打ち鳴らす/ profile_rtを使用してい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 

、私はそれはそれとは何かを持っているかもしれないと仮定しています。しかし、それは私の他のコンピュータで動作しているので、何とか修正することができます。

答えて

16

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

ご使用の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

助けてくれてありがとう!私は単にgcovの代わりにgcov-4.7を実行するだけで問題を回避しました。私が動機付けされていれば、より洗練されたアプローチでupdate-alternativesを使うことが必要だと思います。 –

+0

ありがとうアンソニー! 'ln -sf'は自動的に古いgcovを削除します。 –

+0

ありがとう@EricZ。更新日:D –

5

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

7

私の問題は、私は新しいコンパイラを使用することができるように、私はgccg++を更新していることでしたが、「gcov」または「lcov」を実行しているgcovバージョンの意味を更新するのを忘れては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 
関連する問題