Search code examples
cgccgcov

Crossprofiling with gcov, but GCOV_PREFIX and GCOV_PREFIX_STRIP is ignored


I want to use GCOV to make code coverage but the tests will run on another machine. So the hard wired path to .gcda files in the executable won't work.

In order to change this default directory I can use the GCOV_PREFIX and GCOV_PREFIX_STRIP env vars, as it's said here.

Here my commands I used:

$ export GCOV_PREFIX="/foo/bar"
$ export GCOV_PREFIX_STRIP="3"
$ gcc main.c -fprofile-arcs -ftest-coverage
$ strings a.out | grep gcda
/home/calmarius/blahblah/main.c.gcda

The path remains the same. Anyone have experience with this?


Solution

  • The environment variables are taken into account when you run the code.

    Set them to the appropriate values on the target machine before you run your tests, and the .gcda files will be generated where you want them.