我想調試一個問題,我想打印每個功能的進入和退出/離開的痕跡,以便我可以跟蹤序列的流程。 可以寫入用於打印功能輸入和退出/退出軌跡的宏。 我知道我應該創建一個類,其構造函數應該記錄條目,並且desctructor應該記錄函數的退出/離開。但我不清楚應該如何實施。任何的意見都將會有幫助。 謝謝!宏打印功能進入和退出跟蹤
1
A
回答
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。
相關問題
- 1. 打印功能進入和退出帶空格
- 2. 能鑿打印宏進RTL
- 3. 跟蹤功能
- 4. Python跟蹤誰打印出來?
- 5. pr-str還打印出跟蹤消息
- 6. await Task.Run退出跟蹤ActivityId退出
- 7. 如何登錄進入/退出功能?
- 8. 功能跟蹤WinForms
- 9. Haskell跟蹤功能
- 10. 打印堆棧跟蹤
- 11. Spotipy:打印跟蹤信息
- 12. 打印堆棧跟蹤obfusated
- 13. 如何跟蹤進入和退出基於Spring的Web應用程序的所有功能?
- 14. 宏打印輸出
- 15. ARM7打印/輸出功能
- 16. 功能輸出不打印?
- 17. Log4J:堆棧跟蹤打印期間出現AsyncAppender和NullPointerException
- 18. 打印sympy輸入功能
- 19. 跟蹤宏擴展
- 20. 跟蹤功能在Python
- 21. printf調試跟蹤功能
- 22. Gerrit跟蹤功能分支?
- 23. 內存跟蹤器功能
- 24. 跟蹤快進/快退電視
- 25. 打印堆棧跟蹤到JavaFX中
- 26. Android Log.X不打印堆棧跟蹤
- 27. Log4j不打印堆棧跟蹤
- 28. CoreOS VM崩潰:打印交換跟蹤
- 29. 在C++(MSVC)打印堆棧跟蹤?
- 30. 打印堆棧跟蹤參數的值
你是要求代碼或提示'n指針?爲什麼不使用gdb? –
我看不出如何添加「功能進入」和「功能退出」將幫助您調試問題。如果您在遵循「順序流程」時遇到問題,那麼您的程序可能需要重構。閱讀關於GDB的教程要比編寫特別的宏來自動跟蹤函數要快。 – 2014-02-18 19:49:56
添加入口和出口跟蹤將讓我隔離出現問題的部分代碼。 – user1124236