在Xcode 4.3与LLDB奇怪的错误消息
我目前正在用Xcode 4.3.2编写一个iOS应用程序。 在我的代码的大部分地方,使用LLDB进行debugging工作得很好。 然而在某些时候,我正在逐步浏览我的代码时收到一条奇怪的消息。 它说,当我hover在一个有价证券
错误[IRForTarget]:无法findObjective-C间接ivar符号OBJC_IVAR _ $ _ MyFancyClass.iVar
而不是显示我的价值。 但是,在Variables View
,我可以看到它很好。 直到我selectPrint Description of ...
也就是说,因为这样,Xcode崩溃…当我使用GDB时,hover工作,但variables的types和值是错误的。
我发现我的代码出了问题,导致debugging器失败。 但是,代码运行良好。 我很想提供一些样例代码,但是这个类很长,我不能确定我拧紧的确切位置。 那么有没有人遇到类似的行为?
更新:实际上,这似乎发生在我的代码无处不在,只是在一些特定的文件。 如果有帮助,当LLDB显示上述消息时,GDB总是显示拥有该iVar的Class对象,而不是iVar本身。 看起来内存pipe理有问题。 例如,如果我说的话
[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA];
即使我有,select器也会被调用
[notificationCenter postNotificationName:bar object:objB];
造成此错误的原因是构build设置不正确,如问题post中的讨论所述。 这可以通过将“部署后处理”设置为debugging模式的NO(缺省值)来解决。
确保MyFancyClass.m
被添加到您的目标
您的select器,即nsnotification正在发送到需要有一个(而且只有一个)参数,这是一个NSNotification。 所以当你这样做的时候:
[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; -(void)foo { }
…你需要这样做:[notificationCenter addObserver:self selector:@selector(foo 🙂 name:bar object:objA];
-(void)foo:(NSNotification *)notification { }
请注意notificationCenter的select器中的冒号,以及foo的参数。
- cordova远程ios构build失败
- iOS上的可恢复断言/断点,如带MS编译器的__debugbreak()
- 如何在Captive Portal中debugging浏览器?
- 我的应用程序在我的iPhone上运行时崩溃,但不在模拟器中。 我可以用什么debugging技术来解决这个问题?
- 如何修复safari 6 web inspector,以便它可以与iOS设备或模拟器一起使用?
- Xcodedebugging模式 – 什么时候开/关?
- 使用Xcode查找错误 – 尝试插入nil值
- malloc_history无法检查进程xxxxxx,因为该进程在iOS中不存在
- 仅当testing时MKMapView导致EXC_BAD_ACCESS