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
问候
托马斯
也许,你编译的模块不止一个,你检查过模块之间的依赖关系了吗?请这样做:
- 编译所有代码,
- 然后删除无用的.gcno 文件。 (gcno是编译时生成的)
- 执行你的测试(应该创建匹配 gcno 文件的 gcda)
- 生成报告
第二种可能:
- 编译你的代码
- 执行测试
- 删除无用的 gcno + gcda 文件
- 生成报告
其他:
我想您可以使用一些选项为专用模块生成报告,但我对这些选项不是很熟悉。
此致
我正在尝试使用主目录中的 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
问候 托马斯
也许,你编译的模块不止一个,你检查过模块之间的依赖关系了吗?请这样做:
- 编译所有代码,
- 然后删除无用的.gcno 文件。 (gcno是编译时生成的)
- 执行你的测试(应该创建匹配 gcno 文件的 gcda)
- 生成报告
第二种可能:
- 编译你的代码
- 执行测试
- 删除无用的 gcno + gcda 文件
- 生成报告
其他: 我想您可以使用一些选项为专用模块生成报告,但我对这些选项不是很熟悉。
此致