iPhone:无法获取模拟器来生成.gcda分析数据文件

时间:2011-01-13 13:40:41

标签: iphone profiling gcov

我正在尝试使用iPhone模拟器来分析我的代码。我已启用生成测试覆盖率文件仪器程序流程,并将 -lgcov 添加到链接器标志。根据我读过的所有内容,应该是我在设置方面需要做的所有事情。

更新:生成测试覆盖率文件会触发 -ftest-coverage 标记,仪器程序流会触发 -fprofile-arcs 标志。我检查了构建日志,并在编译时设置它们。

执行程序我可以看到 .o旁边出现的 .gcno 文件在build / .build / Debug-iphonesimulator / .build / Objects-normal / i386目录中编译代码。

但是当我在模拟器中运行应用程序时,我没有出现任何 * .gcda 文件。

我的理解是这些文件包含来自检测的数据。但我无法在电脑上找到它们。

我知道它们可以生成并出现在 * .gcno 文件的旁边,因为我有一个旧的已删除的构建目录,它有它们。我无法弄清楚我必须做些什么来让它们出现并记录下来。

任何帮助表示感谢。

2 个答案:

答案 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

中提到