除錯的時候在每個函式中都輸出log資訊是很好的一件事情,但是這樣的**太多了,又影響閱讀,如果能用乙個巨集來幹這樣的事情,那應該不錯。
下面這個巨集是利用區域性物件的生命期來實現的。可以實現對函式入口和出口的列印,以及對關注變數值的列印,引數定義成巨集,可以列印任意型別的變數。這裡內容不是很完善,待補充。
class
clogtrace
~clogtrace()
template
<
typename
t>
clogtrace
&printarg
(char
*pszarg,t
arg)
clogtrace
&log_trace_a;
clogtrace
&log_trace_b;
private:
const
char
*m_pfunction;
const
char
*m_pfile;
const
intm_nline;
};
#define
log_trace_a(x) log_trace_op(x, b)
#define
log_trace_b(x) log_trace_op(x, a)
#define
log_trace_op(x, next) \
log_trace_a.printarg(#x, (x)).log_trace##next
#define
func_trace() \
clogtrace logtrc##__line__(__function__, __file__, __line__); \
(void)logtrc##__line__.log_trace_a
//呼叫
func_trace()
(引數1
,引數2
,引數3
....)
IOS 除錯日誌輸出
void logmessagebyuuid nsstring uuid 這樣就會吧debug寫入乙個檔案,在測試過程中出現bug 把手機中得日誌倒出來就可以檢視日誌了。這樣就可以除錯了。對於stderr 檔案的解釋來自 為某個外部附件開發應用程式的情況下,開發者無法用 xcode 進行除錯或者用 g...
使用日誌類RFileLogger輸出除錯資訊
一 概述 類rfilelogger對應的標頭檔案和庫檔案分別是flogger.h和flogger.lib。我習慣把opening 放到我希望跟蹤的class的constructl 函式裡面,然後在析構函式裡closing.在真正編碼時,你最好檢測一下connect和createlog是否返回了ker...
LwIP除錯輸出
lwip使用lwip debugf巨集來輸出debug資訊 define lwip debugf debug,message do while 0 該巨集接受2個引數 debug和message debug可以是模組,型別和等級的組合,如 lwip debugf dhcp debug lwip db...