我在XCode 4中设置了一个异常断点。它会破坏源自Cocoa Touch框架并由框架处理的异常吗? I.E.调试器是否会停止所有异常,即使它们是框架的自然部分并由内部处理?
我的调试器一直在框架的内心深处停止看似无害的异常,我需要知道我是否可以放心地忽略它。
答案 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
提供完整的命令地图