1、讓XCode反饋足夠多的信息
在Edit–>Scheme裏面 找到Arguments ,在Environment Variables這裏添加
把下面2個值設置成YES
NSAutoreleaseFreedObjectCheckEnabled
NSDebugEnabled
這種方法非常好用,建議在建立一個工程的時候,加入此設置
2. 讓 NSLog 打印出 足夠的信息
//A better version of NSLog
#define NSLog(format, ...) do { \
fprintf(stderr,"<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr,"-------\n"); \
} while (0)
這是 把 系統的 NSLog 替換成這個宏了,你也可以 把這個宏 的名字 改改
這個 宏 可以打印出 類名 方法名 行號 ,和你要打印的信息,再也不用擔心,無數的打印,而找不到 打印的地方了,----
使用Objetcive語言(強類型)並且用NSLog打印的時候,常常搞不清楚NSLog(@“%?”,xxx) 這種類型該是什麼什麼類型輸出,應該是%d呢還是%@亦或是%f???根本分不清楚嗎~,所以玩轉NSLog你應該要知道以下這幾個全局方法!
3. 調試過程中 動態的 改變 變量的值 :使用expr命令
可以在調試時動態執行指定表達式,並將結果打印出來。常用於在調試過程中修改變量的值。
如圖設置斷點,然後運行程序。程序中斷後輸入下面的命令:
expr a=2
你會看到如下的輸出:
(int) $0 = 2
繼續運行程序,程序輸出的信息是:
實際值:2
很明顯可以看出,變量a的值被改變。 除此之外,還可以使用這個命令新聲明一個變量對象,如:
expr int $b=2
p $b
LLDB調試命令初探:http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/