如何在Gcov中分别指定 .gcno 和 .gcda 目录?

4
我将在我的项目中有多个 .gcda 文件,每个测试用例一个。因为 gcov 会合并每个测试用例执行的 .gcda,所以我将每个 .gcda 文件移动到不同的目录中。
在调用 gcov 时,我尝试指定 .gcda (.\\data\\gcda\\evenodd.gcda) 和 .gcno (.\\data\\gcno\\evenodd.gcno) 文件。
我使用了 -o data\,但似乎 gcov 不扫描路径子目录。
然后,我尝试像这样指定每个文件的路径:
gcov -o data\gcno\evenodd.gcno data\gcda\evenodd.gcda evenodd.c
因为我认为它会接受多个路径。可惜,结果是: Result1 通过将.gcda路径放在.gcno之前,我得到了以下结果: enter image description here 由于这些文件的默认位置是源文件目录,我尝试将.gcno放在那里,然后指定.gcda路径。但它没有起作用。 enter image description here 基于这些结果,gcov不会为-o接收多个路径。
显然,当指定-o时,gcov总是会一起查找.gcno.gcda。除了将它们都放在同一个目录中,还有其他方法吗?

"gcov将合并每个测试用例执行的.gcda文件" - 这不是一件“好事”吗?通常您对测试套件的累积覆盖率感兴趣,而不是单个测试的覆盖率。 - yugr
1个回答

0
你不应该在生成后将.gcno/.gcda文件移动到不同的文件夹,因为gcov将无法定位相关的源文件。此外,gcov必须在编译测试可执行文件的确切相同目录中运行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接