【发布时间】:2012-05-10 23:16:01
【问题描述】:
我的应用程序有时会在导航栏导航时崩溃,并且在控制台日志中除此之外没有错误 ->
(lldb)
如何检查哪里出错了?
【问题讨论】:
-
第一步是添加全局断点,让调试器在抛出异常时停止。看到这个踏板stackoverflow.com/questions/6825275/…
标签: iphone objective-c ios xcode
我的应用程序有时会在导航栏导航时崩溃,并且在控制台日志中除此之外没有错误 ->
(lldb)
如何检查哪里出错了?
【问题讨论】:
标签: iphone objective-c ios xcode
在 Xcode 中,转到 Product > Edit Scheme > Diagnostics > Enable Zombie Object
现在运行应用程序并检查控制台。
【讨论】:
尝试从
启用僵尸对象produt>edit schems> 启用僵尸
【讨论】:
见a recent answer I posted here:
当调试器停止时,转到“调试导航器”并确保底部的滑块一直向右。
从引发异常的地方向下扫视,最终您应该会看到自己的代码。单击相应的方法/函数名称,代码将在编辑器中打开。
如果您在堆栈跟踪中没有看到您自己的任何方法,则异常可能已通过performSelector 样式调用传递,在这种情况下堆栈跟踪已消失。如果是这种情况,您可以通过添加“On Throw”异常断点来获得更好的信息。首先切换到“断点导航器”:
然后点击加号,选择“添加异常断点...”
创建一个“On Throw”断点:
这将在引发异常的确切点停止调试器,并且您可以获得更好的堆栈跟踪。始终启用这样的异常断点是个好主意。
【讨论】:
在 lldb 提示符下键入 bt,它会给您一个堆栈跟踪,告诉您应用程序崩溃的位置。
【讨论】: