Xcode 4.3.2 + iOS SDK 5.1 异常断点不起作用
Posted
技术标签:
【中文标题】Xcode 4.3.2 + iOS SDK 5.1 异常断点不起作用【英文标题】:Xcode 4.3.2 + iOS SDK 5.1 Exception Breakpoint not working 【发布时间】:2012-04-16 10:01:01 【问题描述】:关注了这些话题: - Xcode always stopping at main.m after a crash - Xcode 4.2 showing the wrong line of code on error - Debugging app crashes with ios Simulator & XCode 4 halts in main() function, not crash source
我仍然在“main”处崩溃,而不是崩溃的实际路线。
在 iOS 4.3 模拟器上运行异常! 不适用于 iOS 5.1 模拟器或 iOS 5.0 模拟器 我设置了异常断点并处于活动状态。 (例外:All,Break:On Throw。也尝试过 Break:On Catch) 使用 Apple LLVM 3.1 编译器 基础 SDK 5.1 部署目标设置为 4.0 配置设置为调试 项目已启用 ARC XCode 4.3谢谢
【问题讨论】:
尝试将断点设置为“On Catch” 感谢您的建议,不幸的是也不起作用:(我将编辑我的问题以反映这一点 我记得来自另一个项目的行为,大多数时候它是未初始化的对象或使用obj = value;
而不是self.obj = value;
。 iOS 4 模拟器默默地忽略了这些,iOS 5 似乎更挑剔。使用调试器单步执行代码或使用 NSLog() 来了解您能走多远。
尝试添加更多异常断点:NSKVODeallocBreak、malloc_error_break、exec_bad_access。
感谢所有建议,已经尝试了所有建议并给了它一些时间,但仍然没有运气。调试器吐出正确的消息:“*** First throw call stack: (0x223d022...) terminate called throwing an exception(lldb)”崩溃仍然指向 main。我故意造成崩溃,我设置了一个数组并尝试在超出其范围的索引处获取对象。甚至这次崩溃也指向 main。
【参考方案1】:
试试这个:
断点 -> 添加 -> 添加符号断点。会弹出一个新窗口。
在符号字段中输入“objc_exception_throw”并点击完成。
【讨论】:
这里也一样。很抱歉,当您以前使用过适当的 IDE 时,XCode 4 调试留下了很多不足。【参考方案2】:不幸的是,lldb
有点不稳定,似乎是您的情况下崩溃的原因。切换到gdb
可能会导致这些崩溃消失。
【讨论】:
谢谢,'lldb' 似乎是令人沮丧的原因。切换到“gdb”解决了我的问题! 那么为什么 lldb 是默认的呢? :// @HenrikErlandsson Apple 可能过早地将 lldb 推为默认值。 不,我的意思是既然知道它不稳定,为什么它是默认值? @HenrikErlandsson 我不确定它是否仍然不稳定,因为我已将其关闭,但我将开始在 4.4.1 中使用它,看看它现在是什么样子。以上是关于Xcode 4.3.2 + iOS SDK 5.1 异常断点不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Mountain Lion 上 xCode 4.5.1 中的 iOS 4 和 iOS 5 SDK
xcode 4.2 中的 iOS 5.1 (9B176) SDK 问题
我可以从 Xcode 将 iOS 5.1 SDK 应用程序部署到运行 iOS 6.0 的设备吗?
为啥当我尝试在 ios 7.1 sdk、xcode 5.1 中调用 deallocate 或 release 时出现错误?