大部分人除錯程式都是看日誌吧,這裡我就給大家總結一下iphone程式中新增儲存日誌的方法。
objective-c開發程式的時候,有專門的日誌操作類nslog,它將指定的輸出到標準的錯誤輸出上(stderr)。我們可以利用它在xcode的日誌輸出視窗,或者是輸出到具體的檔案當中。
下面是我在程式中常用到的日誌巨集,用debug開關管理,也就是說只有在debug模式下才讓日誌輸出 :
1234567
891011
1213
1415
1617
#ifdefdebug
# define
log(fmt, ...)dowhile(0)
# define
log_methodnslog(@"%s"
, __func__)
# define
log_cmethodnslog(@"%@/%@"
, nsstringfromclass([self class]), nsstringfromselector(_cmd))
# define
count
(p) nslog(@"%s(%d): count = %d/n"
, __func__, __line__, [p retaincount]);
# define
log_trace
(x)dowhile(0)
#else
# define
log(...)
# define
log_method
# define
log_cmethod
# define
count
(p)
# define
log_trace
(x)
#endif
可以看到,除了標準的使用者定義輸出外,我還加入了許多有用的資訊,比如源程式檔案位置,行號,類名,函式名等。具體的應用可以在具體的開發過程中新增、刪除。
真機測試的時候,可以利用freopen將標準錯誤輸出儲存到指定的檔案當中,這樣就可以在問題發生後分析日誌檔案。
1234567
891011
1213
1415
1617
- (void)redirectnslogtodocumentfolder- (void
.....
}
iPhone開發技巧之除錯篇 儲存日誌
大部分人除錯程式都是看日誌吧,這裡我就給大家總結一下iphone程式中新增儲存日誌的方法。objective c開發程式的時候,有專門的日誌操作類nslog,它將指定的輸出到標準的錯誤輸出上 stderr 我們可以利用它在xcode的日誌輸出視窗,或者是輸出到具體的檔案當中。下面是我在程式中常用到的...
Visual Studio除錯之斷點技巧篇補遺
講完 visual studio除錯之斷點技巧篇 以後,翻翻以前看得一些資料和自己寫的一些文章,發現還有幾個關於中斷程式的技巧在前面的文章裡面遺漏了,決定還是在這裡總結一下。當然啦,如果你知道這些技巧,忽略這篇文章好了,可能有人會對這個問題有一些爭議,因為大部分情況下我們只需要在偵錯程式 debug...
Visual Studio除錯之斷點技巧篇補遺
講完visual studio除錯之斷點技巧篇 以後,翻翻以前看得一些資料和自己寫的一些文章,發現還有幾個關於中斷程式的技巧在前面的文章裡面遺漏了,決定還是在這裡總結一下。當然啦,如果你知道這些技巧,忽略這篇文章好了,可能有人會對這個問題有一些爭議,因為大部分情況下我們只需要在偵錯程式 debugg...