我正在尝试使用iPhone模拟器来分析我的代码。我已启用生成测试覆盖率文件和仪器程序流程,并将 -lgcov 添加到链接器标志。根据我读过的所有内容,应该是我在设置方面需要做的所有事情。
更新:生成测试覆盖率文件会触发 -ftest-coverage 标记,仪器程序流会触发 -fprofile-arcs 标志。我检查了构建日志,并在编译时设置它们。
执行程序我可以看到 .o旁边出现的 .gcno 文件在build / .build / Debug-iphonesimulator / .build / Objects-normal / i386目录中编译代码。
但是当我在模拟器中运行应用程序时,我没有出现任何 * .gcda 文件。
我的理解是这些文件包含来自检测的数据。但我无法在电脑上找到它们。
我知道它们可以生成并出现在 * .gcno 文件的旁边,因为我有一个旧的已删除的构建目录,它有它们。我无法弄清楚我必须做些什么来让它们出现并记录下来。
任何帮助表示感谢。
答案 0 :(得分:1)
This link可能有答案,基本上gcda文件在您的应用正常退出之前不会生成。它提供了两种可能的解决方案:
将此添加到您的plist(但不适用于发布版本):
<key>UIApplicationExitsOnSuspend</key>
<true/>
答案 1 :(得分:1)
我希望link会给你一些想法。探索我找到的链接
.gcno文件生成时 源文件是使用GCC编译的 -ftest-coverage选项。它包含重建基本信息 阻止图表并分配源代码行 数字到块。
a时会生成.gcda文件 程序包含构建的目标文件 使用GCC -fprofile-arcs选项是 执行。一个单独的.gcda文件是 为每个编译的目标文件创建 有这个选项。它包含弧形 过渡计数,以及一些总结 信息。
您可能正在构建一些错误的设置。这些信息在http://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files
中提到