如何添加一个断点到objc_exception_throw?

这是在这个SO问题上bradd larson的答案

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

现在,如果您启用了断点debugging应用程序,则应该抛出这些exception。 然后,您应该能够看到在debugging器中导致exception的事件链。

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

我认为布拉德的回答很清楚, 希望这可以帮助,如果你不明确。

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

在左侧菜单中select“全局断点”。 在“断点”(Breakpoint)列下的右侧应该有一个框,其文本是“双击符号”(Double-Click for symbol)。 在此框中单击并键入“objc_exception_throw”。

然后,单击“位置”列下的“objc_exception_throw”旁边的空格。 会出现一个框让您input位置(在本例中为“libobjc.A.dylib”)。 我做了一个截图,希望可以帮助:

替代文字

在Xcode 4中,可以通过断点部分的“+”button(⌘+ 6)添加这个很棒的断点,

在这里输入图像描述

在Xcode 6 – 从顶部的菜单

debugging>断点>创buildexception断点

我也想推荐添加+[NSException raise:format:arguments:]断点,它的位置应该是CoreFoundation