开发者

GCov and GCC, *.da Files Not Created

开发者 https://www.devze.com 2023-01-19 03:30 出处:网络
I am using GCC version 3.3.6.When I instrument my object files with -fprofile-arcs and -ftest-coverage, the appropriate *.bb and *.bbg files are created.

I am using GCC version 3.3.6. When I instrument my object files with -fprofile-arcs and -ftest-coverage, the appropriate *.bb and *.bbg files are created.

The object files are then linked together into a static library l开发者_运维百科ibfoo.a with:

ar rcs libfoo.a foo1.o foo2.o.

Finally, a series of static libraries are linked together to create my executable with:

gcc -fprofile-arcs -o foo.o <static libraries linked all>

Now, when I run the image, the *.da files are not getting created. Is there a step that I am missing? Does anyone have any other suggestions?

Thanks.


The executable needs to be linked with the gcov library:

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov

EDIT: Starting from gcc 4.1.2, the --coverage option can be used as a synonym for -fprofile-arcs -ftest-coverage (when compiling) and -lgcov (when linking).

Also, it is worth noting the files are created in the same directory as the compilation. This directory shall be reachable from the execution environment. Recent versions of gcc (4-1) introduced environment variables to tune the target directory : GCOV_PREFIX and GCOV_PREFIX_STRIP, see the cross-profiling section of gcc doc.

0

精彩评论

暂无评论...
验证码 换一张
取 消