帮助XCode 4中的异常断点

时间:2011-08-17 12:02:34

标签: xcode debugging exception xcode4

我在XCode 4中设置了一个异常断点。它会破坏源自Cocoa Touch框架并由框架处理的异常吗? I.E.调试器是否会停止所有异常,即使它们是框架的自然部分并由内部处理?

我的调试器一直在框架的内心深处停止看似无害的异常,我需要知道我是否可以放心地忽略它。

3 个答案:

答案 0 :(得分:3)

如果你像我一样,有时候你想要忽略特定的异常(比如Apple的间歇性错误的CMMThrowExceptionOnError,苹果忽略了几个月来向我的错误报告提供任何反馈)

所以,我不是非常有效的解决方案是添加以下断点而不是'添加C ++异常断点...'

从gdb命令行输入 打破__cxa_throw

然后,在XCode断点编辑器中,将以下“调试器命令”添加到此断点。通过替换$ eip的违规地址,您可以排除个人 断点的异常。

silent
# go up one stack frame silently
up-silently
# in my particular app, address of CMMThrowExceptionOnError is 0x9704d22e
if ( $eip == 0x9704d22e )
   # echo gdb ignore exception\n
   #print $eip
   cont
end

如果你能设计出一个不会产生调试器脚本开销的更好的解决方案,请告诉我。

答案 1 :(得分:2)

异常断点就是:异常的断点。这包括框架内的那些。它的例外并不重要 - 如果它被提升,它应该会破坏。

答案 2 :(得分:0)

关于Xcode 4.3中defat使用的LLDB的简短说明 命令具有不同的语法。

set $eip = xxxx

现在是

reg write tip 0x006373ec

http://lldb.llvm.org/lldb-gdb.html

提供完整的命令地图