Cocoa开发中的异常、信号处理与调试指南
在Cocoa开发过程中,我们常常会遇到各种异常和错误,这就需要我们掌握有效的调试方法来解决问题。接下来,我们将详细探讨常见的异常类型、信号问题以及相应的调试和解决办法。
1. 利用lldb调试异常
当程序在 objc_exception_throw 函数处停止时,我们可以借助lldb调试器来获取异常信息。在Mac OS X(64位Intel硬件)编译的代码中,函数的返回值会临时存储在名为 rax 的CPU寄存器中,在lldb里可以通过特殊变量 $rax 访问。使用 po 命令能以可读格式打印对象的值,例如:
(lldb) po $rax
$1 = 4296302928 -[__NSCFNumber length]: unrecognized selector sent to instance 0x387
还可以进一步使用 po [$rax name] 和 po [$rax reason] 获取异常的名称和原因:
(lldb) po [$rax name]
$2 = 0x00007fff783e0a30 NSInvalidArgumentException
(lldb) po [$rax reason]
$3 = 0x0000000100136650 -[__NSCFNu
超级会员免费看
订阅专栏 解锁全文
20

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



