Objective c 如何向objc_异常_抛出添加断点?

Objective c 如何向objc_异常_抛出添加断点?,objective-c,iphone,xcode,debugging,memory-leaks,Objective C,Iphone,Xcode,Debugging,Memory Leaks,这是布拉德·拉森对此的回答 问题: 如果添加两个断点,则应该能够调试这些异常。要做到这一点,请运行|显示|断点并创建两个全局断点(我全局执行它们,因为它们在我的所有应用程序中都非常有用)。第一个应命名为“objc_exception_throw”,其位置应为“libobjc.A.dylib”。第二个应为“-[NSException raise]”,其位置应为“CoreFoundation” 现在,如果您在启用断点的情况下开始调试应用程序,它应该会在抛出这些异常时中断。然后,您应该能够在调试器中看

这是布拉德·拉森对此的回答 问题:

如果添加两个断点,则应该能够调试这些异常。要做到这一点,请运行|显示|断点并创建两个全局断点(我全局执行它们,因为它们在我的所有应用程序中都非常有用)。第一个应命名为“objc_exception_throw”,其位置应为“libobjc.A.dylib”。第二个应为“-[NSException raise]”,其位置应为“CoreFoundation”

现在,如果您在启用断点的情况下开始调试应用程序,它应该会在抛出这些异常时中断。然后,您应该能够在调试器中看到导致异常的事件链


现在,在这个回答中,我想问我如何添加提到的位置???

我认为布拉德的答案非常清楚;如果你还不清楚的话,希望这能有所帮助

在Xcode中,从顶部菜单单击运行>显示>断点。一个新窗口弹出

在左侧菜单中选择“全局断点”。在“断点”列的右侧应该有一个框,文本为“双击符号”。单击此框并键入“objc_异常_抛出”

然后,单击“位置”列下“objc_exception_throw”旁边的空格。将出现一个框,供您键入位置(在本例中为“libobjc.A.dylib”)。我制作了一个屏幕截图,希望对您有所帮助:


我还建议添加
+[NSException raise:format:arguments://code>断点,它的位置应该是
CoreFoundation
在Xcode 4中,这个伟大的断点可以通过断点部分的“+”按钮添加(⌘ + (六)

在Xcode 6中--从顶部菜单

调试>断点>创建异常断点


效果很好。感谢您提供的详细信息。在Xcode 4中,有一个断点导航器,您可以在其中添加这些断点。您还可以安装,必须安装!有人有XCode 4的屏幕截图/菜单路径吗?请查看苹果开发论坛上的这个帖子,了解如何在XCode 4中执行此操作的说明:同样的方法也可以在XCode 5中使用,您也可以安装,一定要有!其他答案已更改,此答案是截至2017年4月/8日的正确答案