这是布拉德拉森对此的回答 SO问题
如果添加两个断点,则应该能够调试这些异常。为此,请转到“运行”|显示|断点并创建两个全局断点(我在全局中断点,因为它们在我的所有应用程序中都非常有用)。第一个应命名为“objc_exception_throw”,其位置应为“libobjc.A.dylib”。第二个应该是“ - [NSException raise]”,它的位置应该是“CoreFoundation”。
现在,如果您在启用断点的情况下开始调试应用程序,它应该在抛出这些异常时中断。然后,您应该能够在调试器中看到导致异常的事件链。
现在在这个答案中,我想问一下如何添加提到的位置???
答案 0 :(得分:81)
我认为布拉德的回答很清楚;希望如果您没有找到它,这可以提供帮助。
在Xcode中,从顶部菜单中单击Run>显示>断点。弹出一个新窗口。
在左侧菜单中选择“全局断点”。 “断点”列下的右侧应该有一个框,文本为“双击符号”。在此框中单击,然后键入“objc_exception_throw”。
然后,单击“位置”列下“objc_exception_throw”旁边的空格。将出现一个框,供您键入位置(在本例中为“libobjc.A.dylib”)。我制作了一个希望有用的截图:
答案 1 :(得分:45)
在Xcode 4中,这个很棒的断点可以通过Breakpoints部分的“+”按钮添加(⌘+ 6)
答案 2 :(得分:6)
- 从顶部菜单
调试>断点>创建异常断点
答案 3 :(得分:4)
我还建议您添加+[NSException raise:format:arguments:]
断点,其位置应为CoreFoundation
。