1.打印log調(diào)試
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"[文件名:%s]\n""[函數(shù)名:%s]\n""[行號:%d] \n"fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif
2.斷言一般用于BUg調(diào)試
? int a=10;
? int b =0;
? NSAssert(b,@"B不等于0");
? ?NSAssert(str !=nil,@"字符串不能為空");?
3.斷點(diǎn)調(diào)試
? ? a.文件行斷點(diǎn)。執(zhí)行到特定文件的木一行時觸發(fā),可以控制臺 po打印查看對象數(shù)值
? ? b.符號斷點(diǎn)。調(diào)用某一函數(shù)或方法時觸發(fā)。相同函數(shù)或方法時,都調(diào)用。
??????????Symbol?Breakpoint?OC,C,C++方法,函數(shù)都會觸發(fā)斷點(diǎn)。C,C++函數(shù)只需要寫函數(shù)名。

? ? c.異常斷點(diǎn)。產(chǎn)生異常時觸發(fā)。
?????????Exception Breakpoint?當(dāng)程序拋出異常的時候會觸發(fā)斷點(diǎn)。部分錯誤會斷點(diǎn)在發(fā)生錯誤的代碼。數(shù)組 越界等會崩潰到main.m,不能定位到具體的代碼,使用Exception Breakpoint就能定位到具體的代碼。
條件斷點(diǎn):


4.收集Logs 分析crash日志
? ? View Device Logs 查看收集日志;

5.集成騰訊的Bugly收集bug日志,后臺可查看

參考:http://m.itdecent.cn/p/43964f1bb80f
????????????https://edu.csdn.net/course/play/916/13102