GCOV 可以在不同的目录结构中创建 .gcda 文件吗?

Can GCOV create .gcda file in the different directory structure?

我正在尝试使用主目录中的 lcov 生成代码覆盖率报告。源代码使用 -coverage 选项编译,以在编译时生成覆盖率信息(创建 gcno 文件)。 然后我将可执行文件和 gcno 文件复制到主目录 directory.I 我正在尝试检查主目录中的 ./exe 是否可以生成覆盖范围 report.I 运行 /home 中的可执行文件其显示的测试用例已通过,但发现未创建 .gcda 文件。

I add the following CPP flag:
 -fprofile-dir= “/home” 
and hence run the executable but still .gcda is not created .

我需要在哪里指定路径,以便它从主目录中获取 .gcno 文件并在当前目录中生成 .gcdo 文件??

这可以使用 GCOV_PREFIX 和 GCOV_PREFIX_STRIP

来完成

请参考文档: https://gcc.gnu.org/onlinedocs/gcc/Cross-profiling.html

问候 托马斯

也许,你编译的模块不止一个,你检查过模块之间的依赖关系了吗?请这样做:

  1. 编译所有代码,
  2. 然后删除无用的.gcno 文件。 (gcno是编译时生成的)
  3. 执行你的测试(应该创建匹配 gcno 文件的 gcda)
  4. 生成报告

第二种可能:

  1. 编译你的代码
  2. 执行测试
  3. 删除无用的 gcno + gcda 文件
  4. 生成报告

其他: 我想您可以使用一些选项为专用模块生成报告,但我对这些选项不是很熟悉。

此致