Xcode调试没有显示值

时间:2014-06-05 16:07:30

标签: objective-c xcode

我完全难过了。我已经调试了一年多,并且在Build Configuration设置为Release时只遇到了这个问题。我已将Build Configuration设置为Debug,并且我已经检查以确保我附加到正确的进程,但在单步执行代码时仍然看不到值。还有其他人遇到过这个问题吗?

这是一个截图:

enter image description here

值正在返回,但我无法在此方法或任何其他方法中看到ANYTHING的值,我无法弄清楚原因。

感谢您提供给我的任何提示。

==============================更新================ ==================

我试图打印出值,这是我收到的输出:

enter image description here

请注意,即使我无法将其打印出来,Variables视图中的值对于结果也是正确的。但其他值,如filePath不应该是nil。

这太奇怪了。

==============================更新================ ==================

我把断点放在return语句上但仍然没有运气:

enter image description here

这次我看不到结果的价值:

enter image description here

4 个答案:

答案 0 :(得分:9)

@Lucy,理想情况下,您在调试时不应该在Release配置文件中运行,Release是一个App Distribution配置文件,包的大小很小,没有/没有调试符号。

但是如果你必须在Release上进行调试(例如由于环境,数据原因),请确保将优化级别设置为'无'发布。

Optimization level

您可以通过以下方式访问上面的配置:

1)项目范围设置 - 影响所有目标 project wide

2)目标特定设置 - 仅影响单个目标 Target specific

不要忘记在App Store发布之前将其切换回来。较低的优化会产生更大的ipk,从而增加您的用户数量。下载时间 - 也是潜在的dSYM生成。

背景

对于上下文,Debug,Adhoc或Release配置文件纯粹是为了识别XCode附带的不同构建配置。 XCode使用没有优化的Debug配置文件(以及与开发和调试相关的各种其他预定义配置)启动项目,因此解释器可以加载符号 - 您可以根据需要随意调整此项。

理论上可以建立与Debug相同的发布版本配置文件。

答案 1 :(得分:9)

我遇到了同样的问题,在鼠标悬停和监视部分,每个变量都显示为nil值,但NSLog为这些变量打印正确值。

现在已经修好了。试试这个

转到产品菜单>方案>编辑方案或 + <

在“运行”中,转到“信息”选项卡,将构建配置更改为" debug"。 希望它能奏效。

Follow the same

答案 2 :(得分:1)

我确实看到了你的部分问题。请注意self nil是怎样的?

这意味着您正在调用取消分配的对象。打开NSZombies进行调试。

请参阅this SO answer了解如何启用NSZombie

鉴于在Objective-C中它是legal to send messages to nil,我怀疑该对象被解除分配为调用doesLicenseFileExist或另一个线程的副作用。

您可能会发现在IDLicenseCommand -dealloc方法中设置断点很有帮助。

答案 3 :(得分:0)

我遇到了这个问题,并将“链接时优化”从“增量”转为“否”,它解决了调试问题。