28、Cocoa开发中的异常、信号、错误与调试

Cocoa开发中的异常、信号、错误与调试

在Cocoa开发中,我们常常会遇到各种异常和错误。了解如何处理这些问题,对于提高程序的稳定性和可靠性至关重要。下面将详细介绍一些常见的异常类型及其解决方法。

1. Xcode调试界面介绍

在Xcode的调试界面中,有几个关键区域:
- 左中部:显示所有可用的变量和寄存器值,能让我们立即看到一些简单的值。
- 右上:显示所选栈帧的源代码或编译后的汇编代码。
- 底部视图:是gdb控制台界面,我们既可以查看程序的输出(如通过NSLog生成的),也可以在gdb提示处输入命令。若看不到底部视图,可从菜单中选择“Run - Console”使其显示。

2. 捕获异常信息

当程序在抛出异常的函数起始处暂停时,我们可以通过以下方法查看异常信息:
在Mac OS X(英特尔硬件)编译的代码中,函数的第一个参数至少在函数开始时会存于名为eax的寄存器中,在gdb里可通过特殊变量$eax访问。objc_exception_throw函数的第一个参数就是异常实例本身。在gdb提示处输入“po $eax”,就能以可读格式打印对象的值。例如:

(gdb) po $eax
*** -[NSCFNumber length]: unrecognized selector sent to instance 0x1092e0

还可以进一步使用gdb的实时Objective - C方法执行功能,获取更多异常信息:

(gdb) po [$eax name]
NSInvalidArgumentException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值