Cocoa开发中的异常、信号、错误与调试
在Cocoa开发中,我们常常会遇到各种异常、信号和错误,掌握调试这些问题的方法至关重要。下面将详细介绍一些常见的异常类型以及对应的调试和解决方法。
利用lldb调试异常
当程序在 objc_exception_throw 函数处停止时,我们可以利用lldb调试器来获取异常信息。在Mac OS X(64位Intel硬件)编译的代码中,任何函数的返回值会临时存储在名为 rax 的CPU寄存器中,在lldb里可以通过特殊变量 $rax 访问。
在lldb提示符下输入以下命令:
(lldb) po $rax
这会以可读格式打印出对象的值。例如,可能会得到类似如下的输出:
$1 = 4296302928 -[__NSCFNumber length]: unrecognized selector sent to instance 0x387
我们还可以进一步询问异常的更多信息:
(lldb) po [$rax name]
$2 = 0x00007fff783e0a30 NSInvalidArgumentException
(lldb) po [$rax reason]
$3 = 0x0000000100136650 -[__NS
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



