2010-09-24 99 views
17

好的,我想我现在已经看到了它。调试时XCode debug vs release版本

大约24小时我一直在试图调试我的应用程序,试图找出所有突如其来的奇怪崩溃。我一直在通过模拟器/调试模式进行调试。像往常一样,当我打断点时,我可以看到变量的值(大部分时间)。然后突然我无法查看变量,无论我做了什么(顺便说一句,即时通讯谈论鼠标悬停的一些愚蠢的原因,我的Xcode禁用调试菜单中的所有调试工具)。长期以来,由于无法完成的事情,我决定使用发布模式进行调试。现在我可以打断点并查看变量的内容。更令人困惑的是,现在xcode给了我一个更全面的视图,让我看到即将“观看”(悬停)的变量。

我知道苹果喜欢做不同的事情。但是什么!!有人可以请我打我,然后告诉我什么我不了解这里?

回答

24

首先,配置“Debug”和“Release”只是名称,如果需要,也可以将它们命名为“Jon”和“Carla”。它们只是您可以修改的配置集的名称,您可以对它们进行调整,以便例如“调试”配置不适合再调试。因此,如果您(意外)在您的“调试”配置中禁用生成调试符号,那么您将完全得到您所描述的内容。

转到“项目” - >“编辑活动目标”。选择“Build”选项卡,然后在左上角的下拉框中选择“Debug”配置。在下面的下拉框中选择“显示所有设置”,然后在这两个下拉框旁边的搜索栏中输入“debug”。

应该有一个设置“生成调试符号”,确保其复选框已设置。 “调试符号级别”应设置为“所有符号”。此外,“调试信息格式”应设置为“带有dSYM文件的DWARF”。

更改设置后,清理项目(“Build” - >“Clean”)并重新构建。

希望有所帮助。

+0

所以你的意思是矮人dSYM的事情是关于调试? – jokoon 2012-08-22 00:58:00

+5

[DWARF](http://en.wikipedia.org/wiki/DWARF)是一种调试文件格式。 dSYM(调试符号)目录/软件包是Apple组织/存储DWARF文件的方式,因此可以将调试符号与二进制文件分开(而不是将调试符号嵌入到二进制文件中)。这种分离方式允许你在没有调试符号的情况下发布你的应用程序,但是如果你得到了崩溃日志或者需要调试应用程序,你仍然有调试符号。 – DarkDust 2012-08-22 07:31:50

+0

我的项目的Xcode中的调试信息格式被设置为dsym和dsym。这是否意味着我正在向客户发送调试符号,谁可以使用它来反向工程我的应用程序? – 2017-05-02 04:03:54