2014-02-18 17 views
1

我想調試一個問題,我想打印每個功能的進入和退出/離開的痕跡,以便我可以跟蹤序列的流程。 可以寫入用於打印功能輸入和退出/退出軌跡的宏。 我知道我應該創建一個類,其構造函數應該記錄條目,並且desctructor應該記錄函數的退出/離開。但我不清楚應該如何實施。任何的意見都將會有幫助。 謝謝!宏打印功能進入和退出跟蹤

+1

你是要求代碼或提示'n指針?爲什麼不使用gdb? –

+1

我看不出如何添加「功能進入」和「功能退出」將幫助您調試問題。如果您在遵循「順序流程」時遇到問題,那麼您的程序可能需要重構。閱讀關於GDB的教程要比編寫特別的宏來自動跟蹤函數要快。 – 2014-02-18 19:49:56

+1

添加入口和出口跟蹤將讓我隔離出現問題的部分代碼。 – user1124236

回答

0
#define LOG_CALL tracer_t _token(__func__) 
struct tracer_t { 
    char const* fname; 
    tracer_t(char const* fname_): fname(fname_) { printin(fname); } 
    ~tracer_t() { printout(fname); } 
} 

void myfunc() { LOG_CALL; 
    // test function 
} 
+0

非常感謝你! – user1124236

0

有幾種C++日誌框架可以幫助做這種事情。我喜歡log4cplus。