Cocoa开发中的异常、信号、错误与调试
1. 利用lldb调试异常
在Mac OS X(64位Intel硬件)编译的代码中,函数的返回值会临时存储在名为 rax 的CPU寄存器中,在lldb里可以通过特殊变量 $rax 访问。当程序在 objc_exception_throw 函数处停止时, $rax 寄存器包含新的异常。
可以使用lldb的 po 命令以可读格式打印对象的值,例如:
(lldb) po $rax
$1 = 4296302928 -[__NSCFNumber length]: unrecognized selector sent to instance 0x387
还能利用lldb的实时Objective - C方法执行来获取更多异常信息:
(lldb) po [$rax name]
$2 = 0x00007fff783e0a30 NSInvalidArgumentException
(lldb) po [$rax reason]
$3 = 0x0000000100136650 -[__NSCFNumber length]: unrecognized selector sent to instance 0x387
Cocoa异常与调试全解析
超级会员免费看
订阅专栏 解锁全文
25

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



