views:

45

answers:

1

When I run gcov foo.cpp it not only generates the code coverage report for foo.cpp, but for all the STL headers used by foo.cpp.

Is there a way to prevent this? It seems to ignore standard library headers like <ctime>.

Edit

Just ran across this post on the gcc mailing list:

Re: gcc, gcov and STL

+1  A: 

Any C++ header files with inline code will get coverage instrumentation when you compile and the results will be visible with gcov. One useful flag is 'gcov -long-file-names' (or just -l) which creates a unique .gcov output file for each header included by a given file. The files have names like 'foo.cpp##bar.h.gcov'. This would make them easy for you to delete afterward with 'rm *\#\#*.gcov' (careful with those backslashes!)

Another way you can detect these files is to look for the lines numbered 0 in the gcov output. These have tagged information including 'Source:' with the full path to the original source file.

Ben Jackson