Проблема с сохранением пути к исходному файлу - PullRequest
1 голос
/ 01 июля 2019

Предполагается, что я в данный момент нахожусь в каталоге /home/testUser/gcovTest/test1/, где у меня есть файл test.c, который я компилирую с gcc -fprofile-arcs -ftest-coverage test.c, который генерирует соответствующие .gcda and .gcno файлы.

После успешной компиляции я выполняю сгенерированныйдвоичный файл ./a.out и выполните следующую команду для создания отчета .gcov.

gcov -p test.c

То, что я ожидал

Полученный файл test.c.gcov должен содержать полный путь test.c т.е. home/testUser/gcovTest/test1/test.c в теге source:, но на самом деле он содержит только test.c

Вопрос

Как мне заставить gcov сохранить полный путь test.c в test.c.gcovфайл?

Я даже попробовал следующий файл, но он все равно печатает test.c в источнике test.c.gcov

gcov -p home/testUser/gcovTest/test1/test.c 

1 Ответ

3 голосов
/ 01 июля 2019

Переключатель -p для gcov сохраняет путь к входному файлу в имени файла вывода .То есть

gcov -p /foo/bar/baz.c

генерирует файл #foo#bar#baz.c.gcov вместо простого baz.c.gcov - но содержимое файла идентично.

Имя исходного файла, как показано наотчет .gcov, генерируется gcc.Если вы хотите, чтобы полный путь был включен в отчет, просто укажите полный путь в командной строке вашей компиляции:

$ gcc -fprofile-arcs -ftest-coverage /foo/bar/test.c
$ ./a.out
$ gcov test.c
File '/foo/bar/test.c'
Lines executed: ...
Creating 'test.c.gcov'
$ head -n 1 test.c.gcov
        -:    0: Source:/foo/bar/test.c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...