1.打印log调试
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"[文件名:%s]\n""[函数名:%s]\n""[行号:%d] \n"fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif
2.断言一般用于BUg调试
int a=10;
int b =0;
NSAssert(b,@"B不等于0");
NSAssert(str !=nil,@"字符串不能为空");
3.断点调试
a.文件行断点。执行到特定文件的木一行时触发,可以控制台 po打印查看对象数值
b.符号断点。调用某一函数或方法时触发。相同函数或方法时,都调用。
Symbol Breakpoint OC,C,C++方法,函数都会触发断点。C,C++函数只需要写函数名。
c.异常断点。产生异常时触发。
Exception Breakpoint 当程序抛出异常的时候会触发断点。部分错误会断点在发生错误的代码。数组 越界等会崩溃到main.m,不能定位到具体的代码,使用Exception Breakpoint就能定位到具体的代码。
条件断点:
4.收集Logs 分析crash日志
View Device Logs 查看收集日志;