本文翻译自Xcode: One Weird Debugging Trick That Will Save Your Life
希望你可以从题目看出我对于这个题目有多开心。不管怎样,让我们回到定期计划编程中...
在过去的几天里,我一直在早餐时看这个高级调试和地址消毒剂。里面有个超级酷的调试技巧我希望能够写下来并记住它,从而能够使用它。
奔溃
写这篇博文的一个有趣的地方是,我随机打开一个已有的测试工程,并让它在下面一个我们都死掉的恐怖地方奔溃:
技巧
为了看到真实的情况,在你项目的线程中点击 objc_exception_throw
来获取下面的信息:
是的,我发现这些信息都很难懂,但恰恰这就是有趣的地方。在下方的控制台区域输入 po $arg1
命令,来获取人类可读的错误信息版本(这里的情况是 这个 nib 不正确)
好的,这个错误很容易修复
一个更高级的技巧
最后,你可以在项目的 异常断点上添加这个 po $arg1
命令,来这个输出自动话:
祝调试快乐!!
补充
如果你想在异常断点发生时还输出程序的调用堆栈,可以再添加一个命令:
那么输出将是如下:
如果你想在本地所有工程中使用上面的这些技巧,可以右键这个异常断点,并选择 Move breakpoint to => user
就可以了:
技巧2
如果你想在界面中有任何约束冲突都断点运行,可以像下面设置: