Reputation: 2926
Just trying to get gcov up and running, getting the following error:
$ 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
I'm using clang/profile_rt to generate the files gcov needs, I'm assuming that might have something to do with it. It's working on my other computer, though, so I assume it can be fixed somehow.
Upvotes: 24
Views: 21486
Reputation: 1158
gcov
with -v
flag you can get the exact execution gcov command. It may help to understand what happens.gcovr --gcov-executable gcov-7
Upvotes: 0
Reputation: 70348
I just had the same problem on my machine.
Make sure your versions of gcov and the compiler you use match.
I had this exact problem when compiling with g++-4.7 and I had gcov 4.6.
On my machine sudo apt-get install ggcov
got me the latest version. I then had to sudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcov
to make gcov point in the right place.
Upvotes: 25
Reputation: 5892
My problem was that I updated gcc
and g++
so that I could use a newer compiler, but forgot to update the gcov
version meaning running "gcov
" or "lcov
" picked up the previous compilers version of gcov
.
So basically running g++ --version
and gcov --version
should yield the same version number else things are going to go very wrong.
Here is how I updated my compiler version, the last line being what I was missing to get it all working.
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
Upvotes: 13
Reputation: 4019
I just had the same problem and I had the correct versions installed. Solution in my case: remove all *.gcda
files from any subdir you compile in. My make clean
did not cover them.
Upvotes: 10