lldb奇怪的错误

时间:2012-04-16 08:45:59

标签: xcode4.3 lldb

我正在使用xCode 4.3.1,并且一旦我想使用lldb,我几乎没有获得任何调试信息,而是得到以下结果,改为使用简单的NSMutableDictionary属性:

(lldb) po _keywordCache
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id')
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id')
note: instance method 'delegate' also declared here
note: declared here with type 'id'
note: instance method 'delegate' also declared here
note: declared here with type 'id'
error: 2 errors parsing expression

切换到gdb始终会给出正确的结果 有人有想法吗?

4 个答案:

答案 0 :(得分:8)

在我的案例中问题的根源是这里讨论的属性,“委托”在实例变量和属性声明中被声明为一个微妙的不同类型。在我的例子中,实例变量类型是id,属性声明是id<SomeProtocol>

我将向Apple报告这是一个错误,因为它不应该导致检查变量失败。修复方法是确保实例变量和属性声明将“委托”描述为完全相同的类型。希望这有帮助!

答案 1 :(得分:1)

我知道这已经很晚了,但是在Xcode 6上遇到了这个问题,需要做一个Clean Build Folder(选择干净时按住选项)。

答案 2 :(得分:1)

我从昨天开始在Xcode 7.3(7D1002)中遇到同样的问题。在它工作好几周之前。在我的情况下,即使是简单的“po someString”也不起作用:
错误:实例方法'URLEncodedString'在不同的翻译单元中具有不兼容的结果类型('void *'与'NSString *')
错误:实例方法'URLDecodedString'在不同的翻译单元中具有不兼容的结果类型('void *'与'NSString *')
注意:实例方法'URLEncodedString'也在这里声明了 注意:实例方法'URLDecodedString'也在这里声明了 错误:解析表达式时出错2个

我尝试的事情:

  • 退出并重新启动Xcode7和模拟器(它们几天都在运行而没有重新启动)
  • Xcode:Product-&gt; Clean和(按住选项键)Clean build folder
  • 删除〜/ Library / Preferences / com.apple.dt.Xcode.plist
  • 删除〜/ Library / Developer / Xcode / DerivedData / *
  • 删除〜/ Library / Developer / Xcode / iOS DeviceSupport / *
  • 安装最新的OS X El Capitan Update 10.11.4

但所有这些都无济于事。调试器中仍然不能使用p或po字符串。

我的Mac上仍然有一个旧的Xcode 6(在安装Xcode 7之前重命名并收起,然后放回/ Applications)。这仍然有效,我可以在调试器中输入“po someString”,并将字符串打印到调试日志中。但是Xcode 7没有......

我在这里找到了局部变量的解决方法(即使这个问题不同):
http://lists.apple.com/archives/xcode-users/2014/May/msg00088.html
ctrl-单击局部变量列表中的变量,然后选择“打印描述”
打印someString的说明:
ipad的

这有点帮助,但无法打印更复杂的命令。

答案 3 :(得分:-1)

我也有这个错误,对我而言,它实际上没有任何问题。我所做的就是点击&#34;切换全局断点状态&#34;右边的按钮。控制台中的按钮。

It is the blue arrow shaped button.
它是蓝色的箭头形按钮。